Code as shown below:

<?
class GifMerge {
      Var $ver                     ='1.1';
      Var $dly                     =50;
      Var $mod                     ='C_FILE';
      Var $first                     =true;
      Var $use_loop                      =false;
      Var $transparent             =false;
      Var $use_global_in              =false;
      Var $x                             =0;
      Var $y                             =0;
      Var $ch                             =0;
      Var $fin                     =0;
      Var $fout                     =' ';
      Var $loop                     =0;
      Var $delay                     =0;
      Var $width                     =0;
      Var $height                     =0;
      Var $trans1                        =255;
      Var $trans2                        =255;
      Var $trans3                        =255;
      Var $disposal                     =2;
      Var $out_color_table_size      =0;
      Var $local_color_table_flag      =0;
      Var $global_color_table_size      =0;
      Var $out_color_table_sizecode      =0;
      Var $global_color_table_sizecode=0;
      Var $gif                      X49 x47=array (0, 0, 0 x46);
      Var $buffer                     =array ();
      Var $local_in                      =array ();
      Var $global_in                      =array ();
      Var $global_out                      =array ();
      Var $logical_screen_descriptor      =array ();
      The function GifMerge ($images, $t1, $t2, $t3, $loop, $dl, $xpos, $ypos, $model) {
              If ($model) {
                      $this - >Mod=$model;
              }
              If ($loop >1) {
                      $this - >Loop=floor ($loop - 1);
                      $this - >Use_loop=true;
              }
              If ($t1 >1 &&$t2 >1 &&$t3 >1) {
                      $this - >Trans1=$t1;
                      $this - >Trans2=$t2;
                      $this - >Trans3=$t3;
                      $this - >Transparent=true;
              }
              For ($I=0; $I <count ($images); $i++) {
                      $dl ($I)       ? $this - >Delay=$dl ($I) : $this - >Delay=$this - >Dly;
                      [$I $xpos]? $this - >X=$xpos ($I) : $this - >X=0;
                      [$I $ypos]? $this - >Y=$ypos ($I) : $this - >Y=0;
                      $this - >Start_gifmerge_process ($images ($I));
              }
              $this - >Fout.="/x3b";
      }
      The function start_gifmerge_process ($fp) {
              If ($this - >mod=='C_FILE') {
                      If (!, $this - >fin=fopen ($fp, "rb")) {
                              The return;
                      }
              } elseif ($this - >mod=='C_MEMORY') {
                      $this - >Ch=0;
                      $this - >Fin=$fp;
              }
              $this - >Getbytes (6);
              If (!, $this - >arrcmp ($this - >buffer, $this - >GIF, 3)) {
                      The return;
              }
              $this - >Getbytes (7);
              If ($this - >first) $this - >Logical_screen_descriptor=$this - >Buffer;
              $this - >Global_color_table_sizecode=$this - >Buffer [4] &0 x07;
              $this - >Global_color_table_size=2 <<$this - >Global_color_table_sizecode;
              If ($this - >buffer &0 x80) [4] {
                      $this - >Getbytes (3 * $this - >global_color_table_size));
                      For ($I=0; $I <((3 * $this - >global_color_table_size)); $i++) {
                              $this - >Global_in ($I)=$this - >Buffer ($I);
                      }
                      If ($this - >out_color_table_size==0) {
                              $this - >Out_color_table_size=$this - >Global_color_table_size;
                              $out_color_table_sizecode=$this - >Global_color_table_sizecode;
                              $this - >Global_out=$this - >Global_in;
                      }
                      If ($this - >global_color_table_size!=$this - >out_color_table_size | | $this - >arrcmp ($this - >global_out, $this - >global_in, (3 * $this - >global_color_table_size))) {
                              $this - >Use_global_in=true;
                      }
              }
              For ($loop=true; $loop) {
                      $this - >Getbytes (1);
                      The switch ($this - >buffer [0]) {
                              Case 0 x21:
                                      $this - >Read_extension ();
                                      Break;
                              Case 0 x2c:
                                      $this - >Read_image_descriptor ();
                                      Break;
                              Case 0 x3b:
                                      $loop=false;
                              Break;
                              Default:
                                      $loop=false;
                      }
              }
              If ($this - >mod=='C_FILE') {
                      Fclose ($this - >fin);
              }
      }
      The function read_image_descriptor () {
              $this - >Getbytes (9);
              $head=$this - >Buffer;
                      $this - >Local_color_table_flag=($this - >buffer [8] &0 x80)? True, false;
                      If ($this - >local_color_table_flag) {
                      $sizecode=$this - >Buffer &0 x07 [8];
                      Size=2 <<$sizecode;
                      $this - >Getbytes (3 * size);
                      For ($I=0; $I <size (3 *); $i++) {
                                      $this - >Local_in ($I)=$this - >Buffer ($I);
                              }
                              If ($this - >out_color_table_size==0) {
                                      $this - >Out_color_table_size=size;
                                      $out_color_table_sizecode=$sizecode;
                              For ($I=0; $I <size (3 *); $i++)
                              {
                                      $this - >Global_out ($I)=$this - >Local_in ($I);
                              }
                              }
                      }
                      If ($this - >first) {
                      $this - >First=false;
                      $this - >Fout.="x47/x49 x46/x38 x39/x61";
                      If ($this - >width &$this - >height) {
                              $this - >Logical_screen_descriptor [0]=$this - >Width &0 XFF;
                              $this - >Logical_screen_descriptor [1]=($this - >width &0 xff00) >>8;
                              $this - >Logical_screen_descriptor [2]=$this - >Height &0 XFF;
                              $this - >Logical_screen_descriptor [3]=($this - >height &0 xff00) >>8;
                      }
                      $this - >|=0 x80 logical_screen_descriptor. [4];
                      $this - >Logical_screen_descriptor [5] &=0 xf0;
                      $this - >Logical_screen_descriptor [6] |=$this - >Out_color_table_sizecode;
                      $this - >Putbytes ($this - >logical_screen_descriptor, 7);
                              $this - >Putbytes ($this - >global_out, ($this - >out_color_table_size * 3));
                      If ($this - >use_loop) {
                              $ns x21 [0]=0;
                              $ns=0 XFF [1];
                              $ns=0 x0b [2];
                              $ns x4e [3]=0;
                              $ns x45 [4]=0;
                              $ns=0 x54 [5];
                              X53 $ns [6]=0;
                              $ns=0 x43 [7];
                              $ns=0 x41 [8];
                              $ns=0 x50 [9];
                              $ns x45 [10]=0;
                              $ns x32 [11]=0;
                              $ns=0 x2e [12];
                              $ns [13]=0 x30;
                              $ns [14]=0 x03;
                              $ns [15]=0 x01;
                              $ns [16]=$this - >Loop &255;
                                      $ns [17]=$this - >Loop >>8;
                              $ns [18]=0 x00;
                              $this - >Putbytes ($ns, 19);
                      }
                      }
                  If ($this - >use_global_in) {
                      $outtable=$this - >Global_in;
                      $outsize=$this - >Global_color_table_size;
                      $outsizecode=$this - >Global_color_table_sizecode;
              } else {
                      $outtable=$this - >Global_out;
                      $outsize=$this - >Out_color_table_size;
              }
              If ($this - >local_color_table_flag) {
                      If (size==$this - >out_color_table_size &&! $this - >arrcmp ($this - >local_in, $this - >global_out, size)) {
                              $outtable=$global_out;
                              $outsize=$this - >Out_color_table_size;
                      } else {
                              $outtable=$this - >Local_in;
                              $outsize=$size;
                              $outsizecode=$sizecode;
                      }
              }
              $use_trans=false;
              If ($this - >transparent) {
                      For ($I=0; $I <$outsize; $i++) {
                              If ($outtable * $I [3]==$this - >trans1 &&$outtable [3 * $I + 1)==$this - >trans2 &&$outtable [3 * $I + 2)==$this - >trans3) {
                                      Break;
                              }
                      }
                      If ($I <$outsize) {
                              $transindex=$I;
                              $use_trans=true;
             }
        }
        if($this->delay || $use_trans) {
            $this->buffer[0]=0x21;
            $this->buffer[1]=0xf9;
            $this->buffer[2]=0x04;
            $this->buffer[3]=($this->disposal <2) + ($use_trans ? 1 : 0);
            $this->buffer[4]=$this->delay &0xff;
            $this->buffer[5]=($this->delay &0xff00)> 8;
            $this->buffer[6]=$use_trans ? $transindex : 0;
            $this->buffer[7]=0x00;
            $this->putbytes($this->buffer,8);
        }
        $this->buffer[0]=0x2c;
        $this->putbytes($this->buffer,1);
        $head[0]=$this->x &0xff;
        $head[1]=($this->x &0xff00)> 8;
        $head[2]=$this->y &0xff;
        $head[3]=($this->y &0xff00)> 8;
        $head[8] &=0x40;
        if($outtable !=$this->global_out) {
            $head[8] |=0x80;
            $head[8] |=$outsizecode;
        }
        $this->putbytes($head,9);
        if($outtable !=$this->global_out) {
            $this->putbytes($outtable, (3 * $outsize));
        }
        $this->getbytes(1);
        $this->putbytes($this->buffer,1);
        for(;;) {
            $this->getbytes(1);
            $this->putbytes($this->buffer,1);
            if(($u=$this->buffer[0])==0) {
                break;
            }
            $this->getbytes($u);
            $this->putbytes($this->buffer, $u);
            }
    }
    function read_extension() {
        $this->getbytes(1);
        switch($this->buffer[0]) {
            case 0xf9:
                    $this->getbytes(6);
                   break;
            case 0xfe:
                    for(;;) {
                    $this->getbytes(1);
                            if(($u=$this->buffer[0])==0) {
                            break;
                        }
                    $this->getbytes($u);
                    }
                break;
            case 0x01:
                    $this->getbytes(13);
                    for(;;) {
                    $this->getbytes(0);
                            if(($u=$this->buffer[0])==0) {
                            break;
                        }
                    $this->getbytes($u);
                    }
                break;
                   case 0xff:
                    $this->getbytes(9);
                    $this->getbytes(3);
                    for(;;) {
                    $this->getbytes(1);
                            if(!$this->buffer[0]) {
                                break;
                            }
                            $this->getbytes($this->buffer[0]);
                        }
                break;
            default:
                    for(;;) {
                    $this->getbytes(1);
                        if(!$this->buffer[0]) {
                            break;
                        }
                    $this->getbytes($this->buffer[0]);
                }
            }
    }
    function arrcmp($b, $s, $l) {
        for($i=0; $i <$l; $i++) {
            if($s{$i} !=$b{$i}) {
                return false;
            }
        }
        return true;
    }
    function getbytes($l) {
        for($i=0; $i <$l; $i++) {
            if($this->mod=='C_FILE') {
                    $bin=unpack('C*', fread($this->fin, 1));
                    $this->buffer[$i]=$bin[1];
                } elseif($this->mod=='C_MEMORY') {
                        $bin=unpack('C*', substr($this->fin, $this->ch, 1));
                        $this->buffer[$i]=$bin[1];
                        $this->ch++;
                }
        }
        return $this->buffer;
    }
    function putbytes($s, $l) {
        for($i=0; $i <$l; $i++) {
            $this->fout .=pack('C*', $s[$i]);
        }
    }
    function getAnimation() {
        return $this->fout;
    }
}
?>


This concludes the body part