/**
  * singleton
  *
  * @return WUMDiffMatchPatchWrapper
  */
 public static function getInstance()
 {
     if (self::$instance == null) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 /**
  * Apply patches and compute merge faults
  *
  * @param array $patches
  * @param string $text
  * @return array
  */
 private function applyPatches($patches, $text)
 {
     $dmp = WUMDiffMatchPatchWrapper::getInstance();
     global $wumMatchDistance;
     $dmp->Match_Distance = $wumMatchDistance;
     $result = $dmp->patch_apply($text, $patches);
     $mergeFaults = array();
     for ($i = 0; $i < count($result[1]); $i++) {
         if (!$result[1][$i]) {
             $mergeFaults[] = $patches[$i];
         }
     }
     return array('mergedText' => $result[0], 'mergeFaults' => $mergeFaults);
 }