$file1=shift;
$file2=shift;

use Data::Dumper;

open(A,"$file1");
$line=1;
while(<A>)
{
	$linha=$_;
	if ($linha=~/(\{\d+\}\{\d+})/)
	{
		$frames=$1;
	}
	while($_=~/([A-Z][a-z]+)(.*)/)
		{
			$_=$2;
		
			push @{$fich1{$1}},$frames;
		}
		$line++;
	
}

open(A,"$file2");

while(<A>)
{
	$linha=$_;
	if ($linha=~/(\{\d+\}\{\d+})/)
	{
		$frames=$1;
		
		
	}
	while($_=~/([A-Z][a-z]+)(.*)/)
		{
			$_=$2;
		
			push @{$fich2{$1}},$frames;
		}
}

for (keys %fich1)
{
	if (!defined $fich2{$_})
	{
		delete($fich1{$_});
	}
}

for (keys %fich2)
{
	if (!defined $fich1{$_})
	{
		delete($fich2{$_});
	}
}
$palmais="";
$paln=0;
for (keys %fich1)
{
	$tam1=@{$fich1{$_}};
	
	
	$tam2=@{$fich2{$_}};
	if ($tam1 != $tam2)
	{
		
		delete($fich1{$_});
		delete($fich2{$_});
	}
	else {
		if($tam1<=2)
		{
			delete($fich1{$_});
			delete($fich2{$_});
		}else
		{
		
		if ($tam1>$paln)
		{
			$paln=$tam1;
			$palmais=$_;
}
	}
}
}
print "palavra:$palmais\n";
print "paln:$paln\n";
if ($paln==0)
{
	die"É impossivel alinhar estas legendas\n";
}
$first1=shift (@{$fich1{$palmais}});
$last1= pop (@{$fich1{$palmais}});
$first2=shift (@{$fich2{$palmais}});
$last2= pop (@{$fich2{$palmais}});

if($first1=~/^\{(\d+)\}/)
{
	$x=$1;
}
if($first2=~/^\{(\d+)\}/)
{
	$y=$1;
}
if($last1=~/^\{(\d+)\}/)
{
	$x1=$1;
}
if($last2=~/^\{(\d+)\}/)
{
	$y1=$1;
}

$a=($y-$y1)/($x-$x1);
$b=int($y1-$a*$x1);

close(A);
close(B);

open(A,$file1);
@linhas=<A>;
for (@linhas)
{
	$_=~s/\{(\d+)\}\{(\d+)\}/alterar($1,$2,$a,$b)/e;
}
open(A,">$file1");
for (@linhas)
{
	print A $_;
}

sub alterar
{
	my $xis=shift;
	my $x1=shift;
	my $a=shift;
	my $b=shift;
	my $y=int($a*$xis+$b);
	my $y1=int($a*$x1+$b);
	return "{$y}{$y1}";
}
	
close (A);
