[br-gnome-org.wiki] adiciona extra
- From: Rafael Fontenelle <rafaelff src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [br-gnome-org.wiki] adiciona extra
- Date: Mon, 1 Oct 2018 14:09:54 +0000 (UTC)
commit fc8f7e46a56bc2eee962088b2019dc7054602195
Author: Rafael Fontenelle <rafaelff gnome org>
Date: Mon Oct 1 10:56:34 2018 -0300
adiciona extra
.../extra/Apresentacoes/Acessibilidade_GNOME.pdf | Bin 0 -> 822242 bytes
site-antigo/extra/Apresentacoes/ENSL2010.tar.gz | Bin 0 -> 133199 bytes
...E2008-Contribuindo_com_o_gnome-JorgePereira.pdf | Bin 0 -> 1442168 bytes
site-antigo/extra/Apresentacoes/FISL.pdf | Bin 0 -> 1157051 bytes
site-antigo/extra/Apresentacoes/GNOME-Shell.odp | Bin 0 -> 1791331 bytes
site-antigo/extra/Apresentacoes/GNOME.odp | Bin 0 -> 4469565 bytes
.../extra/Apresentacoes/GNOME_Foundation.odp | Bin 0 -> 5237373 bytes
.../Apresentacoes/GNOME_Trans_Latinoware-2010.odp | Bin 0 -> 124242 bytes
.../Apresentacoes/GNOME_e_as_distribuicoes.odp | Bin 0 -> 2377065 bytes
.../extra/Apresentacoes/GnomeBazarOrganizadoV2.odp | Bin 0 -> 3402941 bytes
.../extra/Apresentacoes/GnomeBazarOrganizado_.odp | Bin 0 -> 1801967 bytes
site-antigo/extra/Apresentacoes/Gnomesysadmin.odp | Bin 0 -> 1099685 bytes
.../extra/Apresentacoes/O_Projeto_GNOME.pdf | Bin 0 -> 3128019 bytes
.../extra/Apresentacoes/TabalhoTrocoDeNada_.odp | Bin 0 -> 1043099 bytes
.../Apresentacoes/Traduzindo_GNOME_IV-ENSL.odp | Bin 0 -> 151754 bytes
site-antigo/extra/Apresentacoes/apresentacao.pdf | Bin 0 -> 2189528 bytes
site-antigo/extra/Apresentacoes/contribua.pdf | Bin 0 -> 700892 bytes
.../extra/Apresentacoes/contribuindo_Wendell.pdf | Bin 0 -> 972241 bytes
site-antigo/extra/Apresentacoes/ensol2011.odp | Bin 0 -> 674070 bytes
site-antigo/extra/Apresentacoes/envolvendo-se.pdf | Bin 0 -> 2357178 bytes
.../extra/Apresentacoes/gnome-presentation.png | Bin 0 -> 12370 bytes
.../extra/Apresentacoes/traduzindo-gnome.odp | Bin 0 -> 4884920 bytes
.../traduzindo_gnome-FelipeBorges.pdf | Bin 0 -> 575819 bytes
site-antigo/extra/DicasManhas/DIcasGNOME.png | Bin 0 -> 9384 bytes
.../extra/Documentacao/ArtigosAcademicos.png | Bin 0 -> 15531 bytes
site-antigo/extra/Documentacao/DIcasGNOME.png | Bin 0 -> 9384 bytes
.../extra/Documentacao/gnome-help-community.png | Bin 0 -> 18671 bytes
.../extra/Documentacao/gnome-presentation.png | Bin 0 -> 12370 bytes
.../extra/Documentacao/gnome-tutorial-text.png | Bin 0 -> 8870 bytes
.../extra/Documentacao/gnome-tutorial-video.png | Bin 0 -> 11139 bytes
site-antigo/extra/Download/cd-with-foot.png | Bin 0 -> 20484 bytes
site-antigo/extra/ENSL/bannerweb_468x60.png | Bin 0 -> 22655 bytes
...P2008-Contribuindo_com_o_gnome-JorgePereira.pdf | Bin 0 -> 2048205 bytes
site-antigo/extra/FerramentasDeTraducao/muda-aspas | 13 +
.../extra/FerramentasDeTraducao/muda-iniciais | 466 +
.../pt_BR-palavras-em-maiusculo.dic | 9457 ++++++++++++++++++++
site-antigo/extra/FerramentasDeTraducao/review | 346 +
site-antigo/extra/Forum/bannerFixo_468x60.png | Bin 0 -> 18471 bytes
site-antigo/extra/LayoutTemplate/logo.gif | Bin 0 -> 5687 bytes
.../extra/MaterialDivulgacao/BannerA4_A1-thumb.png | Bin 0 -> 23598 bytes
.../extra/MaterialDivulgacao/BannerA4_A1.png | Bin 0 -> 293768 bytes
.../extra/MaterialDivulgacao/BannerA4_A1.svg | 483 +
.../extra/MaterialDivulgacao/BannerA4_A1.xcf | Bin 0 -> 876742 bytes
.../extra/MaterialDivulgacao/BannerWeb_468x60.svg | 459 +
.../extra/MaterialDivulgacao/bannerFixo_468x60.png | Bin 0 -> 18471 bytes
.../extra/PaginasAmigas/gnome-br-120x35.png | Bin 0 -> 5247 bytes
.../extra/PaginasAmigas/gnome-br-171x50.png | Bin 0 -> 8414 bytes
.../extra/PaginasAmigas/gnome-br-274x80.png | Bin 0 -> 11739 bytes
site-antigo/extra/PaginasAmigas/gnome_80x15-3.png | Bin 0 -> 637 bytes
.../extra/PaginasAmigas/made_for_gnome_88x31.png | Bin 0 -> 2763 bytes
.../extra/PaginasAmigas/made_with_gnome_88x31.png | Bin 0 -> 2789 bytes
.../extra/PaginasAmigas/revista-espirito-livre.jpg | Bin 0 -> 7888 bytes
.../extra/PaginasAmigas/training-tecnologia.jpg | Bin 0 -> 10914 bytes
.../extra/PaginasAmigas/yata-technology.png | Bin 0 -> 7886 bytes
site-antigo/extra/ProjetoGrafico/GnomeBR.ico | Bin 0 -> 1150 bytes
site-antigo/extra/ProjetoGrafico/prototype.js | 3277 +++++++
.../PublicacaoAcademica/ArtigosAcad\352micod.png" | Bin 0 -> 15531 bytes
.../SuporteComunitario/gnome-help-community.png | Bin 0 -> 18671 bytes
.../gnome-br-2008-04-23-20h23.log.gz | Bin 0 -> 11112 bytes
.../extra/Tutoriais/Manual_Usuario_Gnome.pdf | Bin 0 -> 1748807 bytes
.../extra/Tutoriais/gnome-tutorial-text.png | Bin 0 -> 8870 bytes
site-antigo/extra/VForum/bannerVForumMed.png | Bin 0 -> 54552 bytes
site-antigo/extra/Videos/gnome-tutorial-video.png | Bin 0 -> 11139 bytes
.../extra/WebCSS/bg-content-right-bottom.png | Bin 0 -> 156 bytes
site-antigo/extra/WebCSS/bg-content-right.png | Bin 0 -> 157 bytes
site-antigo/extra/WebCSS/bg-content.png | Bin 0 -> 175 bytes
site-antigo/extra/WebCSS/bg-header-div.gif | Bin 0 -> 14364 bytes
site-antigo/extra/WebCSS/bg-header.png | Bin 0 -> 194 bytes
site-antigo/extra/WebCSS/bg-menu.png | Bin 0 -> 182 bytes
site-antigo/extra/WebCSS/bg-top.png | Bin 0 -> 179 bytes
site-antigo/extra/WebCSS/line.png | Bin 0 -> 1357 bytes
site-antigo/extra/WebHome/3.0-release3.jpg | Bin 0 -> 193930 bytes
site-antigo/extra/WebHome/fisl11_display.png | Bin 0 -> 5837 bytes
.../WebHome/window-selection-3.20-420x236.png | Bin 0 -> 105769 bytes
74 files changed, 14501 insertions(+)
---
diff --git a/site-antigo/extra/Apresentacoes/Acessibilidade_GNOME.pdf
b/site-antigo/extra/Apresentacoes/Acessibilidade_GNOME.pdf
new file mode 100644
index 0000000..f586d9b
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/Acessibilidade_GNOME.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/ENSL2010.tar.gz b/site-antigo/extra/Apresentacoes/ENSL2010.tar.gz
new file mode 100644
index 0000000..16f3553
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/ENSL2010.tar.gz differ
diff --git a/site-antigo/extra/Apresentacoes/ESLPE2008-Contribuindo_com_o_gnome-JorgePereira.pdf
b/site-antigo/extra/Apresentacoes/ESLPE2008-Contribuindo_com_o_gnome-JorgePereira.pdf
new file mode 100644
index 0000000..18f6b08
Binary files /dev/null and
b/site-antigo/extra/Apresentacoes/ESLPE2008-Contribuindo_com_o_gnome-JorgePereira.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/FISL.pdf b/site-antigo/extra/Apresentacoes/FISL.pdf
new file mode 100644
index 0000000..e350f66
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/FISL.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/GNOME-Shell.odp b/site-antigo/extra/Apresentacoes/GNOME-Shell.odp
new file mode 100644
index 0000000..a931f5a
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GNOME-Shell.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GNOME.odp b/site-antigo/extra/Apresentacoes/GNOME.odp
new file mode 100644
index 0000000..a164ae9
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GNOME.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GNOME_Foundation.odp
b/site-antigo/extra/Apresentacoes/GNOME_Foundation.odp
new file mode 100644
index 0000000..77b2e73
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GNOME_Foundation.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GNOME_Trans_Latinoware-2010.odp
b/site-antigo/extra/Apresentacoes/GNOME_Trans_Latinoware-2010.odp
new file mode 100644
index 0000000..558c261
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GNOME_Trans_Latinoware-2010.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GNOME_e_as_distribuicoes.odp
b/site-antigo/extra/Apresentacoes/GNOME_e_as_distribuicoes.odp
new file mode 100644
index 0000000..c854bf5
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GNOME_e_as_distribuicoes.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GnomeBazarOrganizadoV2.odp
b/site-antigo/extra/Apresentacoes/GnomeBazarOrganizadoV2.odp
new file mode 100644
index 0000000..4beb611
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GnomeBazarOrganizadoV2.odp differ
diff --git a/site-antigo/extra/Apresentacoes/GnomeBazarOrganizado_.odp
b/site-antigo/extra/Apresentacoes/GnomeBazarOrganizado_.odp
new file mode 100644
index 0000000..a7dacc4
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/GnomeBazarOrganizado_.odp differ
diff --git a/site-antigo/extra/Apresentacoes/Gnomesysadmin.odp
b/site-antigo/extra/Apresentacoes/Gnomesysadmin.odp
new file mode 100644
index 0000000..01df447
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/Gnomesysadmin.odp differ
diff --git a/site-antigo/extra/Apresentacoes/O_Projeto_GNOME.pdf
b/site-antigo/extra/Apresentacoes/O_Projeto_GNOME.pdf
new file mode 100644
index 0000000..e2de43b
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/O_Projeto_GNOME.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/TabalhoTrocoDeNada_.odp
b/site-antigo/extra/Apresentacoes/TabalhoTrocoDeNada_.odp
new file mode 100644
index 0000000..1539260
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/TabalhoTrocoDeNada_.odp differ
diff --git a/site-antigo/extra/Apresentacoes/Traduzindo_GNOME_IV-ENSL.odp
b/site-antigo/extra/Apresentacoes/Traduzindo_GNOME_IV-ENSL.odp
new file mode 100644
index 0000000..a71c21e
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/Traduzindo_GNOME_IV-ENSL.odp differ
diff --git a/site-antigo/extra/Apresentacoes/apresentacao.pdf
b/site-antigo/extra/Apresentacoes/apresentacao.pdf
new file mode 100644
index 0000000..daa6107
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/apresentacao.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/contribua.pdf b/site-antigo/extra/Apresentacoes/contribua.pdf
new file mode 100644
index 0000000..25de2d2
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/contribua.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/contribuindo_Wendell.pdf
b/site-antigo/extra/Apresentacoes/contribuindo_Wendell.pdf
new file mode 100644
index 0000000..e70a974
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/contribuindo_Wendell.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/ensol2011.odp b/site-antigo/extra/Apresentacoes/ensol2011.odp
new file mode 100644
index 0000000..824411f
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/ensol2011.odp differ
diff --git a/site-antigo/extra/Apresentacoes/envolvendo-se.pdf
b/site-antigo/extra/Apresentacoes/envolvendo-se.pdf
new file mode 100644
index 0000000..f1dda8e
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/envolvendo-se.pdf differ
diff --git a/site-antigo/extra/Apresentacoes/gnome-presentation.png
b/site-antigo/extra/Apresentacoes/gnome-presentation.png
new file mode 100644
index 0000000..5647f93
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/gnome-presentation.png differ
diff --git a/site-antigo/extra/Apresentacoes/traduzindo-gnome.odp
b/site-antigo/extra/Apresentacoes/traduzindo-gnome.odp
new file mode 100644
index 0000000..6cc7a09
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/traduzindo-gnome.odp differ
diff --git a/site-antigo/extra/Apresentacoes/traduzindo_gnome-FelipeBorges.pdf
b/site-antigo/extra/Apresentacoes/traduzindo_gnome-FelipeBorges.pdf
new file mode 100644
index 0000000..d80eb10
Binary files /dev/null and b/site-antigo/extra/Apresentacoes/traduzindo_gnome-FelipeBorges.pdf differ
diff --git a/site-antigo/extra/DicasManhas/DIcasGNOME.png b/site-antigo/extra/DicasManhas/DIcasGNOME.png
new file mode 100644
index 0000000..b983b80
Binary files /dev/null and b/site-antigo/extra/DicasManhas/DIcasGNOME.png differ
diff --git a/site-antigo/extra/Documentacao/ArtigosAcademicos.png
b/site-antigo/extra/Documentacao/ArtigosAcademicos.png
new file mode 100644
index 0000000..b4c8710
Binary files /dev/null and b/site-antigo/extra/Documentacao/ArtigosAcademicos.png differ
diff --git a/site-antigo/extra/Documentacao/DIcasGNOME.png b/site-antigo/extra/Documentacao/DIcasGNOME.png
new file mode 100644
index 0000000..b983b80
Binary files /dev/null and b/site-antigo/extra/Documentacao/DIcasGNOME.png differ
diff --git a/site-antigo/extra/Documentacao/gnome-help-community.png
b/site-antigo/extra/Documentacao/gnome-help-community.png
new file mode 100644
index 0000000..2e8defe
Binary files /dev/null and b/site-antigo/extra/Documentacao/gnome-help-community.png differ
diff --git a/site-antigo/extra/Documentacao/gnome-presentation.png
b/site-antigo/extra/Documentacao/gnome-presentation.png
new file mode 100644
index 0000000..5647f93
Binary files /dev/null and b/site-antigo/extra/Documentacao/gnome-presentation.png differ
diff --git a/site-antigo/extra/Documentacao/gnome-tutorial-text.png
b/site-antigo/extra/Documentacao/gnome-tutorial-text.png
new file mode 100644
index 0000000..417a559
Binary files /dev/null and b/site-antigo/extra/Documentacao/gnome-tutorial-text.png differ
diff --git a/site-antigo/extra/Documentacao/gnome-tutorial-video.png
b/site-antigo/extra/Documentacao/gnome-tutorial-video.png
new file mode 100644
index 0000000..277b291
Binary files /dev/null and b/site-antigo/extra/Documentacao/gnome-tutorial-video.png differ
diff --git a/site-antigo/extra/Download/cd-with-foot.png b/site-antigo/extra/Download/cd-with-foot.png
new file mode 100644
index 0000000..731f1a3
Binary files /dev/null and b/site-antigo/extra/Download/cd-with-foot.png differ
diff --git a/site-antigo/extra/ENSL/bannerweb_468x60.png b/site-antigo/extra/ENSL/bannerweb_468x60.png
new file mode 100644
index 0000000..6bba0f8
Binary files /dev/null and b/site-antigo/extra/ENSL/bannerweb_468x60.png differ
diff --git a/site-antigo/extra/ESLUCAP/ESLUCAP2008-Contribuindo_com_o_gnome-JorgePereira.pdf
b/site-antigo/extra/ESLUCAP/ESLUCAP2008-Contribuindo_com_o_gnome-JorgePereira.pdf
new file mode 100644
index 0000000..8142898
Binary files /dev/null and b/site-antigo/extra/ESLUCAP/ESLUCAP2008-Contribuindo_com_o_gnome-JorgePereira.pdf
differ
diff --git a/site-antigo/extra/FerramentasDeTraducao/muda-aspas
b/site-antigo/extra/FerramentasDeTraducao/muda-aspas
new file mode 100644
index 0000000..50177ca
--- /dev/null
+++ b/site-antigo/extra/FerramentasDeTraducao/muda-aspas
@@ -0,0 +1,13 @@
+#!/bin/sh
+#
+
+uso() {
+ meu_nome="$(basename $0)"
+ echo "$meu_nome: converte aspas 'assim', \`assim' e “assim” para \"assim\"."
+ echo "Sintaxe: $meu_nome ARQUIVO"
+ exit 1
+}
+
+[ "$#" = "1" ] || uso
+
+msgfilter -i "$1" -o "$1" --keep-header sed "s/[\`'“]\([^\`'“”]*\)['”]/\\\"\1\\\"/g"
diff --git a/site-antigo/extra/FerramentasDeTraducao/muda-iniciais
b/site-antigo/extra/FerramentasDeTraducao/muda-iniciais
new file mode 100644
index 0000000..de3a1a0
--- /dev/null
+++ b/site-antigo/extra/FerramentasDeTraducao/muda-iniciais
@@ -0,0 +1,466 @@
+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+# (c) 2008 João S. O. Bueno
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+
+#
+# Projeto LDP-BR
+#
+# script: muda-iniciais
+#
+# objetivo: Altera o estilo de maiúsculas de strings em .po
+#
+# 27/06/08 - Versão 1.0 - Criado por Joao S. O. Bueno (gwidion mpc com br)
+# 28/06/08 - Versão 1.1 - Adicionado o suporte a dicionario
+ # (sugestão Fernando Boaglio)
+# 28/06/08 - Versão 1.2 - correções de bugs por Joao S. O. Bueno (gwidion mpc com br)
+# 29/06/08 - Versão 1.3 - refatoração do código principal para facilitar
+# leitura e correção de bugs (João)
+
+import sys, os
+
+VERSION = "1.3"
+
+class MyDict(dict):
+ def __getitem__(self, key):
+ if isinstance(key, tuple):
+ default = key[1]
+ key = key[0]
+ else:
+ default = ""
+ try:
+ return dict.__getitem__(self,key)
+ except KeyError:
+ return default
+
+WHITESPACE = (" ", "\t", "\n", "\r")
+
+class Msgstr(object):
+ """
+ Recebe um bloco de linhas contendo uma msgstr
+ -decide se a mensagem propriamente dita no bloco de linhas
+ prcisa ser alterada
+ - disponibiliza o bloco de linhas, alterado ou não
+ - disponibilzia um contador ed alterações realizdas
+
+ """
+ #Variaeis de clase, incializadas para cada cada
+ #arquivo processado.
+ MNEMONICCHAR = u"_"
+ set_of_capitalized_words = set()
+
+ def __init__(self, po_lines):
+
+ self.po_lines = po_lines
+ #self.lines
+ #self.line_wrappers = []
+
+ self._extract_message_text()
+
+ #self.alter
+
+ self.changeable = True
+ #self.changed_lines = []
+ #self.chars_changed
+ self.change_lines()
+ self.changed = bool(self.chars_changed)
+
+ def get_changed_lines(self):
+ out_buffer = []
+ for wrapper, line in zip(self.line_wrappers, self.changed_lines):
+ out_buffer.append(wrapper % line)
+ return out_buffer
+
+
+ def change_lines(self):
+ self.changed_lines = []
+ self.chars_changed = 0
+ line_num = 0
+ for line in self.lines:
+ self.changed_lines.append(self._change_line(line_num, line))
+ #para efeito de perdoar a primeira letra da Msgstr, só
+ #contamos as linhas com conteúdo
+ if self.changed_lines[-1]:
+ line_num += 1
+ #popriedade self.changeable é atualizada em _change_line
+ if not self.changeable:
+ self.changed_lines = self.lines
+ self.chars_changed = 0
+
+ def _next_word(self, position, line):
+ return line[position:].split()[0]
+
+ def _at_word_start(self, position, in_line):
+ char = in_line[position]
+ if not char.isalpha():
+ return False
+ if position == 0:
+ return True
+ if in_line[position - 1].isspace() or in_line[position - 1] == self.MNEMONICCHAR:
+ return True
+ return False
+
+ def _next_word(self, position, in_line):
+ return in_line[position:].split()[0]
+
+ def _change_line (self, line_num, line):
+ if not self.changeable:
+ return line
+ in_line = line.decode("utf-8")
+ out_line_buffer = []
+ at_first_word = True
+
+ for position, char in enumerate(in_line):
+ if self._at_word_start(position, in_line):
+ this_char_changeable = True
+ if line_num == 0 and at_first_word:
+ if not char.isupper():
+ self.changeable = False
+ return
+ this_char_changeable = False
+ next_word = self._next_word(position, in_line)
+
+ if next_word in self.set_of_capitalized_words:
+ this_char_changeable = False
+ elif len(next_word) >= 2 and self._isupper(next_word):
+ this_char_changeable = False
+ elif char.islower():
+ this_char_changeable = False
+ if len(next_word) > 3 and next_word != "para":
+ #assume que a mensagem toda não está com maiusculas repetidas
+ #a preposição "para" pode não ter as inicial em maiuscula em
+ #strings desse tipo. Pode haver outras palvras nessa categoria
+ self.changeable = False
+ return
+ at_first_word = False
+ else:
+ this_char_changeable = False
+
+ if this_char_changeable:
+ #e, a linha que manda na bodega toda:
+ out_line_buffer.append(char.lower())
+ self.chars_changed += 1
+ else:
+ out_line_buffer.append(char)
+
+ return "".join(out_line_buffer).encode("utf-8")
+
+ def _isupper(self, word):
+ word = word.replace(self.MNEMONICCHAR, u"")
+ return word.isupper()
+
+ def _extract_message_text(self):
+ self.lines = []
+ self.line_wrappers = []
+ for line in self.po_lines:
+ wrapper, text = self.grab_quoted(line)
+ self.lines.append(text)
+ self.line_wrappers.append(wrapper)
+
+
+ def get_text(self):
+ return "".join(self.lines)
+ def get_changed_text(self):
+ return "".join(self.changed_lines)
+
+ def grab_quoted(self, line):
+ """separa o texto entre aspas duplas na linha passada"""
+ start = line.find('"')
+ end = line.rfind('"')
+ if start == -1 or start == end:
+ return "", None
+ wrapper = line[:start+1] + "%s" + line[end:]
+ return wrapper, line[start + 1 : end]
+
+
+ #changeable = property(self.is_changeable)
+ text = property(get_text)
+ changed_text = property(get_changed_text)
+
+class Changer(object):
+ """
+ - Recebe streams de entrada e saída
+ - Lê linha por linha essas strings -
+ - junta os blocos de linha que contém as msgstrs, e passa-os
+ a um objeto da classe Msgstr para tratamento
+ - se for o caso:
+ - confirma a alteração de forma interativa
+ - atualiza a linha que indica se a msgstr é fuzzy
+ - senão: escreve o bloco inalterado
+ - escreve as linhas na stream de saída
+ - imprime as informações em sdterr, no nível de verbosidade desejado
+ """
+ def __init__(self, **kwargs):
+ """
+ atributos:
+ self.in_stream - file stream de entrada
+ self.out_stream - file stream de saída
+
+ """
+ object.__init__(self)
+ options = MyDict(kwargs)
+ self.message_stream = sys.stderr
+
+ self.in_stream = options["in_stream"]
+ self.out_stream = options["out_stream"]
+
+ self.fuzzy = options["fuzzy", True]
+ self.interactive = options["interactive", False]
+ self.verbosity = options["verbosity", 1]
+
+ #altera as variáveis da classe Msgstr- todas as instancias de Msgstr nesta
+ #execução do programa:
+
+ #FIXME: deveriam ser executados uma vez só para todos os arquivos.
+
+ Msgstr.MNEMONICCHAR = options["mnemonic", "_"].decode("utf-8")
+ Msgstr.set_of_capitalized_words = DictLoaderSet(options["dict_file", None])
+
+
+
+ def ask_user(self, new, current):
+ #FIXME: se o usuário abortar, deveriamos salvar as alterações já feitas
+ #a alteração interativa pode ser tediosa.
+ sys.stdout.write("Original:\n%s \n\nSugestão:\n%s\n\n" % (current, new))
+ answer = raw_input("Alterar? [S/n]")
+ if answer.lower() in ("", "s", "y"):
+ return True
+ return False
+
+ def change_fuzzy_line(self, index, out_buffer):
+ if "fuzzy" in out_buffer[index]:
+ return
+ if "c-format" in out_buffer[index]:
+ out_buffer[index] = out_buffer[index][:-1] + ", fuzzy\n"
+ else:
+ out_buffer.insert(index + 1, "#, fuzzy\n")
+
+ def commit_msgstr(self, out_buffer, msgstr_buffer, fuzzy_line_position, line=""):
+ #this does all the processing as well:
+ msgstr = Msgstr(msgstr_buffer)
+ if msgstr.changed and (not self.interactive or
+ self.ask_user(msgstr.changed_text, msgstr.text)):
+ out_buffer += msgstr.get_changed_lines()
+ self.msgstrs_changed += 1
+ self.chars_changed += msgstr.chars_changed
+ if self.fuzzy:
+ self.change_fuzzy_line (fuzzy_line_position, out_buffer)
+ if self.verbosity == 2:
+ self.message_stream.write ("Linha %d:\nMensagem: \n %sAlterada para:\n %s \n\n\n" %
(len(out_buffer),msgstr.text, msgstr.changed_text))
+ else:
+ out_buffer += msgstr_buffer
+ out_buffer.append(line)
+
+ def do_it(self):
+ #total changes in file:
+ self.chars_changed = 0
+ self.msgstrs_changed = 0
+
+ #line being processed is part of a msgstr:
+ in_msgstr = False
+
+ # position of the line that should containa fuzzy statement inside the out_buffer
+ fuzzy_line_position = 0
+
+ #buffers output text,a cummllating copied and chanegd text:
+ out_buffer = []
+ for line in self.in_stream.readlines():
+ #if current line is not part of a msfstr>
+ if not in_msgstr:
+ #is it the begniing of a msgstr?
+ if line.startswith("msgstr"):
+ #print msgstrs_changed
+ in_msgstr = True
+ msgstr_buffer = []
+ elif line.startswith("msgid"):
+ fuzzy_line_position = len(out_buffer) - 1
+ if out_buffer[fuzzy_line_position].startswith("msgctxt"):
+ fuzzy_line_position -= 1
+
+ if not in_msgstr:
+ out_buffer.append(line)
+ else:
+ if line.startswith("msgstr") or line[0] in ("\'", "\""):
+ msgstr_buffer.append(line)
+ else:
+ in_msgstr = False
+ self.commit_msgstr(out_buffer, msgstr_buffer, fuzzy_line_position, line)
+
+ #Fim do processamento do arquivo
+ if in_msgstr: #o maldito arquivo podia ter um \n no final !!!
+ #agora eu sei por que o gcc pede isso! :-)
+ self.commit_msgstr(out_buffer, msgstr_buffer, fuzzy_line_position)
+ #Fim da interação sobre as linhas do arquivo
+ self.out_stream.write("".join(out_buffer))
+ if self.verbosity >= 3:
+ self.message_stream.write("".join(out_buffer))
+ if self.verbosity >= 1:
+ self.message_stream.write(" Alterados %d caracteres em %d mensagens\n\n" %
(self.chars_changed, self.msgstrs_changed))
+
+ def close_streams(self):
+ self.out_stream.close()
+ self.in_stream.close()
+
+
+class DictLoaderSet(set):
+ def __init__(self, file_name="pt_BR-palavras-em-maiusculo.dic", encoding="iso-8859-1"):
+ set.__init__(self)
+ try:
+ dict_file = open(file_name, "rt")
+ for line in dict_file.xreadlines():
+ self.add(line.decode(encoding).strip())
+ dict_file.close()
+ except IOError, error:
+ sys.stderr.write ("""Aviso: não foi possível abrir o arquivo de dicionários de maiúsculas
"%s":\n%s\nProsseguindo com dicionário em branco\n\n""" % (file_name, error))
+
+
+def command_line_mode():
+ from optparse import OptionParser
+
+ usage = u"""prog [opções] [caminho_para/pt_BR.po outro_caminho_para/pt_BR.po]"""
+
+ #FIXME: a formatação que o OptionParser impõe para a description atrapalha um pouco:
+ #não há coo forçar quebras de linha na description.
+ description= u"""Elimina a maiúsculas repetidas das mensagens de um arquivo .po,
+ colocando-o em conformidade com as regras da ABL, como acordado no projeto LDP-BR.
+ Use "-" como nome de arquivo para processar <stdin>. Esse script faz parte do projeto
+ LDP-BR. Autor - João S. O. Bueno, 2008, licenciado sob a GPL v.3.0
+"""
+ parser = OptionParser(usage=usage, description=description, version="%%prog v%s" % VERSION )
+
+ parser.add_option("-n", "--no-fuzzy", dest="fuzzy",
+ action="store_false",
+ default=True,
+ help = u"Não marca as mensagens alteradas pelo programa como fuzzy. (Por padrão elas
são marcadas.)")
+
+ parser.add_option("-i", "--interactive", dest="interactive",
+ action="store_true",
+ default=False,
+ help=u"Confirma cada mudança de mensagem")
+
+ parser.add_option("-m", "--mnemonic", dest="mnemonic",
+ action="store",
+ default="_",
+ help=u"Caractére que representa os mnemônicos aceleradores (por padrão \"_\")")
+
+ parser.add_option("--dry-run", dest="dry_run",
+ action="store_true",
+ default=False,
+ help=u"Apenas exibe o que seria alterado, não grava alterações")
+
+ parser.add_option("--output-file", "-o", dest="output",
+ default=[], action="append",
+ help=u"Arquivo destino. Por padrão é o próprio arquivo de entrada. Se houver mais de
um arquivo de entrada, deve haver um número correspondente de opções '-o'. Use o nome '-' para <stdout>")
+
+ parser.add_option("--no-backup", dest="no_backup",
+ action="store_true",
+ default=False,
+ help=u"Se especificado, não cria uma cópia de segurança do arquivo .po"
+ )
+ parser.add_option("--verbosity", "-v", dest="verbosity", type="int",
+ default=1,
+ help=u"Nível de verbosidade (0-3), padrão: 1"
+ )
+ parser.add_option("--dict", dest="dict_file",
+ default="pt_BR-palavras-em-maiusculo.dic",
+ help=u"Arquivo com dicionário de palávras maiúsculas. (1 por linha, codificação
iso-8859-1)"
+ )
+ parser.add_option("--quiet", "-q", dest="quiet",
+ action="store_true",
+ default=False,
+ help=u"Não gera saída (equivale a --verbosity=0)"
+ )
+ options, files_to_change = parser.parse_args()
+
+ if options.quiet:
+ options.verbosity = 0
+
+ if options.interactive and "-" in files_to_change:
+ parser.error("Não é possível confirmar as alterações interativamente se <stdin> é usado como arquivo
de entrada")
+ sys.exit(1)
+ if "-" in files_to_change and len(files_to_change) > 1:
+ parser.error("Não é possível combinar outros arquivos com <stdin> (\"-\") ")
+ sys.exit(2)
+ output_files = files_to_change
+ if options.output:
+ if "-" in options.output and len(options.output) == 1:
+ output_files = ["-"] * len(files_to_change)
+ elif len(options.output) != len(files_to_change):
+ parser.error("Número de arquivos de saída difere do número de arquivos de entrada!")
+ sys.exit(3)
+ else:
+ output_files = options.output
+
+ if not files_to_change:
+ parser.print_help()
+ sys.exit(0)
+
+ #### começo da ação:
+ changer = Changer(fuzzy=options.fuzzy,
+ interactive=options.interactive,
+ verbosity=options.verbosity,
+ mnemonic=options.mnemonic,
+ dict_file=options.dict_file)
+ for input_file, output_file in zip(files_to_change, output_files):
+ new_input = ""
+
+ if input_file == "-":
+ in_stream = sys.stdin
+ else:
+ in_stream = open(input_file, "rt")
+
+ if options.dry_run:
+ if os.name == "posix":
+ out_stream = open("/dev/null", "wt")
+ else:
+ import cStringIO
+ out_stream = cStringIO.StringIO()
+ elif output_file == "-":
+ out_stream = sys.stdout
+ elif input_file == output_file:
+ #se alguma dessas operaçõe de arquivo der ume rro, deixe
+ # o programa abortar - as mensagens padrão do python
+ # devem ser o suficiente para o usuário acertar a
+ #situação
+ new_output = output_file + "#"
+ if os.path.exists(new_output):
+ os.unlink(new_output)
+ out_stream = open(new_output, "wt")
+ else:
+ out_stream = open(output_file, "wt")
+ changer.in_stream = in_stream
+ changer.out_stream = out_stream
+
+ if options.verbosity >= 1:
+ sys.stderr.write("Lendo de %s e escrevendo em %s\n" % (input_file, output_file))
+
+ changer.do_it()
+
+ changer.close_streams()
+ if input_file == output_file and not options.dry_run and not output_file == "-":
+ new_input = input_file + "~"
+ if os.path.exists(new_input):
+ os.unlink(new_input)
+ os.rename(input_file, new_input)
+ os.rename(new_output, input_file)
+
+ if new_input and options.no_backup:
+ os.unlink(new_input)
+
+if __name__ == "__main__":
+ command_line_mode()
\ No newline at end of file
diff --git a/site-antigo/extra/FerramentasDeTraducao/pt_BR-palavras-em-maiusculo.dic
b/site-antigo/extra/FerramentasDeTraducao/pt_BR-palavras-em-maiusculo.dic
new file mode 100644
index 0000000..2d72c1b
--- /dev/null
+++ b/site-antigo/extra/FerramentasDeTraducao/pt_BR-palavras-em-maiusculo.dic
@@ -0,0 +1,9457 @@
+�dila
+�gabo
+GIMP
+Image
+Manipulation
+Program
+�gueda
+�jax
+�lcimo
+�lfio
+�lida
+�lika
+�lisson
+�lvares
+�lvaro
+�mico
+�ndrocles
+�ries
+�rtemas
+�rtemis
+�talo
+�tio
+�tis
+�xel
+�zem
+�mpelo
+�ngelo
+�ngica
+�ber
+�berle
+�bulo
+�cio
+�der
+�dina
+�dipo
+�dnie
+�feso
+�frem
+�lbio
+�lcana
+�lcio
+�lder
+�lio
+�lmer
+�lson
+�lton
+�lvia
+�lvis
+�merson
+�mi
+�nio
+�nomo
+�olo
+�piro
+�rico
+�ris
+�rone
+�sio
+�vagon
+�vodo
+�vora
+�zio
+�aco
+�nio
+�ubio
+�ubulo
+�ucaris
+�ucles
+�udia
+�uporo
+�utico
+�utiques
+�bis
+�caro
+�nclito
+�ndico
+�sis
+�taca
+�bidos
+�rion
+�lmer
+�rano
+�rsidas
+�rsula
+A�ail�ndia
+A�u
+A�uzinho
+A�cio
+A�lia
+A�da
+A�lson
+A�lton
+A�rton
+A.
+A.C.
+AAC
+AB
+ABNT
+AC
+ACD
+ACP
+ADCT
+ADH
+ADIn
+ADIns
+AFP
+AG
+AIP
+AL
+AM
+AML
+AMP
+ANC
+ANMP
+AP
+APDL
+APEL
+APL
+APT
+ARS
+ASCII
+AVC
+AXO
+Aar�o
+Ab�
+Ab�rcio
+Ab�lio
+Ab�ndio
+Aba�ai
+Aba�ra
+Abac�lio
+Abace
+Abadi�nia
+Abaetetuba
+Abaiara
+Abd�o
+Abd�nio
+Abdeel
+Abdias
+Abdiel
+Abeau
+Abeba
+Abednego
+Abeguar
+Abel
+Abelardo
+Abessal�o
+Abiel
+Abimael
+Abimeleque
+Abino�o
+Abr�o
+Abr.
+Abrantes
+Abrar
+Abreu
+Abreul�ndia
+Abrienda
+Abrona
+Absal�o
+Abt�dio
+Abuja
+Abund�ncio
+Ac�
+Ac�lia
+Ac�rio
+Acaiaca
+Acantocerat�deos
+Acar�-fantasma
+Acar
+Acara�
+Acarap�
+Acazias
+Acegu�
+Aceldama
+Acelino
+Acemira
+Ach�a
+Achila
+Aci
+Acilino
+Acindino
+Acir
+Aconc�gua
+Acopiara
+Acorizal
+Acr�sio
+Acrabim
+Acre�na
+Acrel�ndia
+Acube
+Ad�lia
+Ad�
+Ad�o
+Ad�lio
+Ad�lio
+Ad�lson
+Ad�lio
+Ada�as
+Adada
+Adair
+Adalai
+Adalardo
+Adalb�ria
+Adalbero
+Adalberto
+Adalelmo
+Adalfredo
+Adalfrida
+Adalgiso
+Adaline
+Adalmar
+Adalmir
+Adalmiro
+Adalrico
+Adalrique
+Adaltina
+Adaltiva
+Adalto
+Adalvino
+Adalzira
+Adam�ncio
+Adami
+Adamine
+Adamir
+Adanelia
+Adara
+Adari
+Adarico
+Adauto
+Adeano
+Adeilce
+Adeilton
+Adel�ndia
+Adelardo
+Adelbar
+Adelberto
+Adelelmo
+Adelindo
+Adeline
+Adelino
+Adelmar
+Adelmaria
+Adelmarino
+Adelmaro
+Adelmiro
+Adelmo
+Adelson
+Adeltrudes
+Ademar
+Ademir
+Adena
+Adenir
+Adenocarcinona
+Adeodato
+Aderaldo
+Aderbal
+Aderico
+Adessio
+Adiel
+Adim
+Adino
+Adirm�rquidas
+Adirson
+Aditaim
+Adlai
+Adler
+Adm�
+Adma
+Admeto
+Adn�rio
+Adne
+Adolar
+Adolfine
+Adolfino
+Adolfo
+Adom
+Adonaide
+Adoni
+Adonias
+Adonibezeque
+Adonic�o
+Adonir�o
+Adoniram
+Adonisedeque
+Ador�o
+Adorabela
+Adoraim
+Adorinda
+Adosindo
+Adoxogr�ficoK
+Adozina
+Adrameleque
+Adrast�ia
+Adrastea
+Adrastria
+Adri�o
+Adrian�polis
+Adriane
+Adriano
+Adriel
+Adroaldo
+Adrovaldo
+Adulfo
+Adumim
+Adur�o
+Adustina
+Aedes
+Aedona
+Aegla
+Aemiliano
+Aeropa
+Afavaca
+Afeca
+Afeganist�o
+Afeque
+Afr�nio
+Afrod�sio
+Afrodite
+Afsana
+Afu�
+Ag�pio
+Ag�pis
+Ag�tocles
+Ag�lio
+Ag�nidas
+Agague
+Agamedes
+Agapenor
+Agapito
+Agasias
+Agat�o
+Agda
+Agelau
+Agesilau
+Ageu
+Agilberto
+Agildo
+Aginaldo
+Agla�
+Aglea
+Agliberto
+Agn�s
+Agnaldo
+Agnese
+Agnolo
+Agostina
+Agr�cio
+Agraciana
+Agricol�ndia
+Agrol�ndia
+Aguanil
+Aguape�
+Aguiar
+Aguiarn�polis
+Aguiberto
+Aguidinha
+Aguilar
+Aguimar
+Aguinaldo
+Aguirre
+Agustine
+Ai�ar
+Aidoneus
+Aids
+Aila
+Ailude
+Aim�s
+Aim�
+Aim�o
+Aim�
+Aim�e
+Aim�
+Aim
+Aima�s
+Aimber�
+Aime�
+Aimeleque
+Aino�
+Aiquara
+Air�
+Airum�
+Aisamaque
+Aiuruoca
+Ajagun�
+Ajalom
+Ajax
+Aju
+Ajuricaba
+Ajuru
+Al�a
+Al�cio
+Al�rcio
+Al�ssio
+Al�xis
+Al�cio
+Al�pio
+Al�rio
+Ala�de
+Aladim
+Alagoinha
+Alain
+Alair
+Alambari
+Alameleque
+Alamote
+Alan
+Alanis
+Alaor
+Alarice
+Alarico
+Alasca
+Alastair
+Alb�nia
+Alb�rico
+Alb�lio
+Albaque
+Albaran
+Albarino
+Alberique
+Alberon
+Albertano
+Alberte
+Albertim
+Albertine
+Albertino
+Alberto
+Albin
+Albine
+Albion
+Albo�no
+Albom
+Albuquerque
+Alc�dio
+Alca�ova
+Alcander
+Alcandro
+Alcanena
+Alceb�ade
+Alceb�des
+Alceni
+Alceste
+Alceu
+Alcib�ades
+Alcidamo
+Alcido
+Alcin�polis
+Alcindo
+Alcione
+Alcioneu
+Alcipe
+Alcir
+Alcis
+Alcochete
+Alcoutim
+Aldebar�
+Aldebar�o
+Aldeberto
+Aldebrandus
+Aldegunde
+Aldeli
+Aldemiro
+Alder
+Alderico
+Alderique
+Alderise
+Alderita
+Aldete
+Aldevino
+Aldine
+Aldo
+Aldobrando
+Aldon�a
+Aldora
+Aldrique
+Aldrovandi
+Aldrovando
+Aleardo
+Aleixo
+Aleja
+Alejandrina
+Alejandro
+Alemanha
+Alemete
+Alencar
+Alenica
+Alenis
+Aleo
+Alessander
+Alessandro
+Alete
+Alex�nia
+Alex
+Alexa
+Alexander
+Alexandre
+Alexandria
+Alexandro
+Alexino
+Alexsander
+Alexsandro
+Alfeu
+Alfons
+Alfonso
+Alfredino
+Alfredo
+Alg�s
+Algodres
+Alhandra
+Alheli
+Alhena
+Ali�zio
+Alice
+Alienor
+Alij�
+Alim
+Aline
+Aliomar
+Alita
+Alm�quio
+Alm�o
+Alm�ria
+Alm�rico
+Alm�rindo
+Almada
+Almadino
+Almagesto
+Almasor
+Almeda
+Almeida
+Almeirim
+Almeno
+Almerico
+Almerinda
+Almeta
+Almino
+Almir
+Almiro
+Almom
+Almort�o
+Alo�ndia
+Alo�sio
+Alondra
+Alosio
+Alpiar�a
+Alpin�polis
+Alpiniano
+Alportel
+Alpos
+Alriana
+Alt�nia
+Altagracia
+Altair
+Altamir
+Altamirana
+Altamirando
+Altamiro
+Altin�polis
+AltivirR
+Alu�sio
+Alu�zio
+Aludra
+Alura
+Alus
+Alv�
+Alvai�zere
+Alvar�es
+Alvarengo
+Alves
+Alvim
+Alvin�polis
+Alvinl�ndia
+Alvito
+Alzamora
+Alzheimer
+Alziro
+Alzubra
+Am�lio
+Am�ria
+Am�ncio
+Am�ndio
+Am�lie
+Am�rico
+Am�lcar
+Am�s
+Am�lio
+Amab�lia
+Amade
+Amadeo
+Amajari
+Amal
+Amalarico
+Amalberga
+Amaleque
+Amalie
+Amalrico
+Amalrique
+Amamba�
+Amanayara
+Amanca�
+Amandino
+Amani
+Amantino
+Amanzio
+Amap�
+Amapari
+Amapor�
+Amar�lio
+Amaraji
+Amaralina
+Amari
+Amarilda
+Amarilla
+Amarino
+Amasa
+Amasai
+Amatur�
+Amauri
+Amaury
+Amber
+Ambrogina
+Ambrogio
+Ambros
+Ambrose
+Amelinha
+Amenem�s
+American�polis
+Amerigo
+Amesterd�o
+Ami
+Amiano
+Amiclas
+Amiel
+Amilton
+Amin
+Amirom
+Amisadai
+Amitai
+Amod�tidas
+Amom
+Amoracir
+Amorin�polis
+Amp�re
+Ampliato
+Amr�o
+Amsterd�
+Amsterdam
+An�lia
+An�pio
+An�polis
+An�tole
+An�m
+An�sio
+An�bal
+An�cia
+An�sio
+An�sis
+An�
+An�bis
+Ana�as
+Ana
+Anabe
+AnabelQ
+Anabelia
+Anabete
+Anac
+Anadia
+Anadil
+Anael
+Anag�
+Anaide
+Anajatuba
+Anal�ndia
+Analdino
+Analiel
+Analilia
+Anam�
+Anameleque
+Anami
+Anamim
+Anan�
+Ananda
+Ananias
+Ananindeua
+Anapu
+Anari
+Anarosa
+Anast�sius
+Anastas
+Anastase
+Anastasio
+Anastese
+Anatote
+Anauel
+Anauril�ndia
+Anax�goras
+Anax�menes
+Anaxarco
+Anaxarete
+Anaximandro
+Anbar
+Ancara
+Ancel
+Ancelmo
+Anchieta
+And�cides
+Andaluzia
+Andara�
+Anderson
+Andiberto
+Andir
+Andocl�ia
+Andomar
+Andorra
+Andr�maco
+Andr�
+Andr�e
+Andr�ia
+Andr�nico
+Andrade
+Andradina
+Andrea
+Andreana
+Andreazza
+Andrei
+Andreina
+Andrel�ndia
+Andrelino
+Andreoli
+Andressa
+Andreza
+Andria
+Andrino
+Androgeu
+Andruscha
+Aneci
+Anelina
+Anelise
+Anelizia
+Aner
+Anf�polis
+Anfil�quio
+Anfito
+Anfitrite
+Anfr�sio
+Ang�line
+Ang�lique
+Angara
+Angatuba
+Angeiras
+Angel�ndia
+Angele
+Angeles
+Angelice
+Angelito
+Angeloni
+Angelus
+Angicia
+Angilberto
+Anguera
+Anguila
+Anhaia
+Anhatomirim
+Anhembi
+Ani
+Aniano
+Aniceto
+Anicuns
+Aniel
+Anim
+Anira
+Anit�polis
+Anito
+Anjum
+Anjuta
+AnorR
+Anquises
+Anr�o
+Anrafel
+Ansaldo
+Ansberto
+Ansel
+Anselmino
+Anselmo
+Ant�rtida
+Ant�mio
+Ant�gua
+Ant�loco
+Ant�oco
+Ant�para
+Ant�patro
+Ant�stenes
+Ant�nio
+Antananarivo
+Antelmo
+Antenor
+Antenore
+Antero
+Anteu
+Anticiro
+Anticl�a
+Antidesm�ceas
+Antilhas
+Antin�polis
+Antioquia
+Antip�tride
+Antipas
+Antoine
+Antoniete
+Antoninho
+Antonita
+Antotias
+Antu�rpia
+Antunes
+Anuar
+Anube
+Anunciato
+Ao�
+Ao�
+Aode
+Aol�
+Aoliabe
+Aolib�
+Aolibama
+Ap�ricio
+Ap�lia
+Apaim
+Apar�cio
+Aperib�
+Aperip�
+Api�na
+Apia�
+Apia
+Apodi
+Apoema
+ApoinarR
+Apol�nio
+Apolino
+Apoliom
+Apolodoro
+Apor�
+Apr�gio
+Apuarema
+Apucarana
+Apuiar�s
+Apuleu
+Aqu�mines
+Aqu�lio
+Aquias
+Aquidab�
+Aquidauana
+Aquim
+Aquimeleque
+Aquino�o
+Aquino
+Aquior
+Aquiraz
+Aquis
+Aquisgrana
+Aquit�nia
+Aquitobe
+Ar�tor
+Ar�
+Ar�cio
+Ar�sio
+Ar�s
+Ar�cia
+Ar�stocles
+Ara�o
+Ara�a�
+Ara�agi
+Ara�ariguama
+Ara�as
+Ara�atuba
+Ara�oiaba
+Ara�u
+Ara�ua�
+Ara�
+Ara�ba
+Ara�jo
+Ara�na
+Arabe
+Arabele
+Arac�
+Araca�
+Aracaju
+Aracangu�
+Aracar�
+Aracatu
+Araceli
+Aracelia
+Aracema
+Aracitaba
+Aracruz
+Aracunda
+Aragar�as
+Aragoi�nia
+Aragominas
+Aragua�u
+Aragua�na
+Araguacema
+Araguaia
+Araguainha
+Araguan�
+Araguapaz
+Araguara
+Araguatins
+Araioses
+Aral
+Araldino
+Araldo
+Aramari
+Arambar�
+Aramis
+Arandu
+Arani
+Aranjuez
+Arantina
+Arape�
+Arapoema
+Arapor�
+Arapoti
+Araputanga
+Araqu�m
+Araquari
+Araquitu
+Arar�
+Ararangu�
+Araraquara
+Ararate
+Ararend�
+Araric�
+Araripe
+Araripina
+Araruna
+Aratama
+Aratiba
+Arato
+Aratu�pe
+Aratuba
+Arau�
+Arauar�
+Arba
+Arbel
+Arbogasto
+Arc�ngelo
+Arceburgo
+Arcesilau
+Arcibaldo
+Arcoverde
+Ardenas
+Ardila
+Ardom
+Ardovino
+Ardu�no
+Arealva
+Arei�polis
+Areial
+Areli
+Arella
+Aren�polis
+Aren�polis
+Aresqui
+Aretas
+Aretusa
+Aretuza
+Arfaxade
+Arg�lia
+Arg�via
+Argemiro
+Argens
+Arges
+Argeu
+Argirita
+Argobe
+Ari�dena
+Ari�o
+Ari�
+Ari
+Ariadna
+Arialdo
+Ariane
+Ariberto
+Aricanduva
+Aricema
+Aricina
+ArielQ
+Ariene
+Arildo
+Arim
+Arimat�ia
+Arina
+Arinos
+Arionte
+Arioque
+Ariosto
+Ariosvaldo
+Ariovaldo
+Aripuan�
+Arisla
+Arissa
+Arist�goras
+Arist�bulo
+Arist�demo
+Arist�fane
+Arist�filo
+Arist�teles
+Arist�nico
+Aristeo
+Aristeu
+Aristide
+Aristilo
+Aristipo
+Aristocl�a
+Ariston
+Aristotelina
+Arivaldo
+Arizona
+Arlei
+Arlene
+Arles
+Arlete
+Arli
+Arlindo
+Arline
+Arm�nio
+Armaged�o
+Armagedom
+Armanda
+Armandina
+Armia
+Armida
+Armindo
+Armiteu
+Armoni
+Arn�
+Arn�bio
+Arnaldino
+Arnaldo
+Arne
+Arnira
+Arno
+Arnoldina
+Arnoldo
+Arnolfo
+Arnulfo
+Aroazes
+Arode
+Arodi
+Aroer
+Arolde
+Aroldo
+Aron
+Arouca
+Arpade
+Arquelau
+Arquias
+Arquibaldo
+Arquimedes
+Arquipo
+Arrabal
+Arraes
+Arrieta
+Arriola
+Arronches
+Ars�nia
+Ars�sio
+Ars�o
+Arsa
+Arsene
+Arsenius
+Artemidoro
+Artemiso
+Artenir
+Artilano
+Artur
+Arturo
+Aruan�
+Aruba
+Arubote
+Aruj�
+Aruma
+Arvade
+As�lia
+As�ncrito
+Asa�as
+Asadel
+Asael
+Asafe
+Asarela
+Asariel
+Asb�ia
+Asbel
+Asc�ri
+Asc�rio
+Asc�nio
+Ascalom
+Ascen��o
+Ascurra
+Asdode
+Asdote
+Asdr�bal
+Asiel
+Asil
+Asileu
+Asim
+Asmara
+Ass�s
+Assalim
+Assar�
+Assarad�o
+Assir
+Assis
+Assuero
+Assur
+Assurban�pal
+Assurbanipa
+Assurd�
+Assurim
+Ast�rix
+Ast�rias
+Astarote
+Asterote
+Astolfo
+Astor
+Astorga
+Astreu
+Astride
+Astrogildo
+Astrolgilda
+Asvero
+At�lia
+At�lio
+Ata�as
+Ata�de
+Ata�lfo
+Atal�a
+Atal�ia
+Atalia
+Ataliba
+Atan�sio
+Atanagildo
+Atanarico
+Atarote
+Atarvaveda
+Ataualpa
+Aten�goras
+Aten�genes
+Atena�de
+Atena
+Atenodoro
+Athan�sia
+Atibaia
+Atilano
+Atimno
+Atl�ntida
+Atlai
+Atossa
+Atotes
+Atreo
+Atreu
+Att.
+Augias
+Augustin�polis
+Augustine
+Auleste
+Aumai
+Aur�lio
+Aur�ncio
+Aurelie
+Aurelindo
+Aurelino
+Aurelius
+Auril�ndia
+Aus�nio
+Austine
+Austrag�silo
+Austreg�silo
+Ausubel
+Aut�dico
+Aut�lico
+Autazes
+Autodemonte
+Auz�o
+Auzate
+Ava�
+Avait�
+Avanza
+Aveiro
+Avelaine
+Aveleda
+Avelin�polis
+Avelino
+Avellina
+Aventino
+Averr�is
+Avest�
+Aviano
+Avicena
+Avinh�o
+Avintes
+Avite
+Axada
+Axaiel
+Axix�
+Azaca
+Azael
+Azair
+Azal�a
+Azalias
+Azanias
+Azarel
+Azaz
+Azazias
+Azeca
+Azenate
+Azer
+Azerbaidj�o
+Azevedo
+Aziel
+Azim
+Azize
+Azmavete
+Azmom
+Aznote
+Azor
+Azric�o
+Azriel
+Azuba
+Azucena
+Azul�a
+Azur
+B�dui
+B�lc�s
+B�lder
+B�rbrio
+B�rea
+B�tea
+B�traco
+B�vio
+B�ngalas
+B�lgio
+B�rtolo
+B�ril
+B�tias
+B�ris
+B�vidas
+B�palo
+B
+BA
+BACEN
+BC
+BCE
+BCG
+BCI
+BCM
+BCP
+BD
+BDI
+BE
+BFE
+BH
+BMG
+BMW
+BNU
+BP
+BPA
+BPI
+BPSM
+BR
+BSE
+BT
+BTA
+BTN
+BVL
+Ba�ra
+Baas�ias
+Bab�lia
+Baba�ul�ndia
+Babil�na
+Babis
+Bacabal
+Bacbuque
+Bacbuquias
+Bacurituba
+Bacute
+Badajoz
+Badar�
+Badia
+Badri
+Baependi
+Bag�
+Bag�
+Bagd�
+Bagdade
+Bahamas
+Bahia
+Baian�polis
+Baiardo
+Baical
+Baira�
+Bajite
+Bala�o
+Balad�
+Balandina
+Balantidium
+Balaque
+Balbino
+Baldassare
+Balderico
+Baldim
+Baldino
+Baldoinho
+Baldomar
+Baldomero
+Baldovino
+Balsamino
+Balsem�o
+Baltara
+Baltazar
+Baltes
+Bam�
+Bamaco
+Bambi
+Bambu�
+Bamote
+Ban�bal
+Bana�as
+Banaboi�o
+Banabui�
+Banese
+Banespa
+Bangladeche
+Banguecoque
+Bangui
+Banza�
+Baquebacar
+Bara
+Barahona
+Baraque
+Baraquel
+Baraquias
+Barbacena
+Barbare
+Barber�
+Barbosa
+Barcarena
+Bari�
+Barleta
+Barnab�s
+Barnaldo
+Barnine
+Barrab�s
+Barreirinha
+Barrol�ndia
+Barroquinha
+Barsab�s
+Barsante
+Barsine
+Bartimeu
+Bartinique
+Bartira
+Bartolo
+Baruer�
+Baruque
+Barzilai
+Bas�
+Bas�lio
+Baselisa
+Basem�
+Basemate
+Basileu
+Basilicata
+Basilindo
+Basilino
+Basilissa
+Basino
+Bassano
+Bassas
+Bassor�
+Bat�lia
+Batagua�u
+Bataipor�
+Batilde
+Batildina
+Batilo
+Bator
+Batr�quidas
+Batraqu�deos
+Batuel
+Batul
+Baturit�
+Baudelaire
+Baur�
+Baviera
+Bealias
+Bealote
+Beatrice
+Beatriz
+Bebai
+Bebel
+Beberibe
+Bebeto
+Becorate
+Bedade
+Bedias
+Belas�rio
+Belcagem
+Belcantino
+Belcanto
+Beles�rius
+Belesis
+Belfast
+Belford
+Belgrado
+Beli
+Belial
+Belido
+Belieno
+Belinda
+Belisa
+Belito
+Belmir
+Belmiro
+Belmonte
+Belquior
+Belterra
+Beltessazar
+Belzebu
+Ben�cio
+Benaia
+Benardo
+Benavente
+Benazir
+Benevaldo
+Benevenuto
+Benevides
+Beniamino
+Benilde
+Beninu
+Benito
+Benote
+Bentes
+Bentim
+Bequer
+Bequim�o
+Ber�ia
+Bera�as
+Beraldo
+Beraque
+Berberia
+Berdine
+Berede
+Berenice
+Berias
+Bernadete
+Bernadinha
+Bernado
+Bernaldo
+Bernardes
+Bernardim
+Bernardino
+Bernice
+Bernolfo
+Bernulfo
+Berodaque
+Berota
+Berotai
+Berseba
+Bert�rio
+Bert�lio
+Bert�polis
+Bertilda
+Bertilo
+Bertino
+Bertioga
+Berto
+Bertolesa
+Bertolfo
+Bertrando
+Bertuola
+Berualdo
+Beruldo
+Beruri
+Berzelai
+Besai
+Besete
+Besodias
+Bet�nia
+Betim
+Betina
+Betinho
+Betonim
+Betsab�
+Betsaida
+Bevil�quia
+Biagio
+Bianor
+Biante
+Biara
+Bib�rio
+Biblos
+Bicaco
+Bilgai
+Bils�
+Bine�
+Binui
+Biritiba
+Biritinga
+Birm�nia
+Birniniano
+Birsa
+Birzavite
+Bis�ncio
+Bismarque
+Bisol
+Bit�nia
+Bitia
+Bitrom
+Bitu
+Bituruna
+Bizioti�
+Bl�s
+Blandino
+Blando
+Blanes
+Blantina
+Blasco
+Bo�
+Bo�cio
+Boaventura
+Boavista
+Boaz
+Boc�cio
+Bocage
+Bodoc�
+Boemundo
+Bogomil
+Bogot�
+Boituva
+Bol�via
+Bolena
+Bolivariano
+Bolonha
+Bomb�cidas
+Bombarral
+Bon�polis
+Bona
+Bonafide
+Bonaire
+Bonami
+Bonanza
+Bonaparte
+BonarR
+Bonates
+Bonato
+Bonfilho
+Bonfim
+Bonfin�polis
+Bonif�cio
+Bonifante
+Bonifatia
+Bonjardim
+Boquira
+Bor�stenes
+Borac�ia
+Borba
+Borborema
+Borebi
+Borges
+Borguinh�es
+Borja
+Born�u
+Borragin�ceas
+Borraz�polis
+Borromeu
+Bortoli
+Bosco
+Bosete
+Bossoroca
+Boston
+Botox
+Botucatu
+Botumirim
+Botupor�
+Botuver�
+Boudica
+Boulos
+Bourdieu
+Bovis
+Bozenai
+Bozi
+Bozra
+Br�s
+Br�ulio
+Br�scia
+Br�cio
+Br�gido
+BrOffice.org
+Bracara
+Bradesco
+Bradi
+Bragan�a
+Brahams
+Brand�nio
+Brandenburgo
+Branderico
+Branderigo
+Brandini
+Bras�polis
+Brasil
+Brasil�ndia
+Brasil�ia
+Brasilino
+Brasnorte
+Bratislava
+Braz
+Brazabrantes
+Brazar�o
+Brejetuba
+Brejol�ndia
+Brenda
+Breno
+Bressane
+Brigida
+Brigite
+Briolanja
+Briseida
+Briseu
+Bristol
+Britaldo
+Briteiros
+Brizola
+Brod�squi
+Brona
+Bruce
+Bruges
+Brummel
+Brun�polis
+Brun�rio
+Brunei
+Bruneilda
+Brunelda
+Bruner
+Brunilda
+Bruninho
+Brusque
+Brutus
+Bruxelas
+Bu�aco
+Bu�que
+Buaiz
+Buarque
+Bucareste
+Budail
+Budapeste
+Budur
+Buen�polis
+Bueno
+Buerarema
+Buf�nidas
+Buingelas
+Bujari
+Bujaru
+Bujumbura
+Bulb�quer
+Bulg�ria
+Buni
+Bupr�stidas
+Buqui
+Buquias
+Bur�nidas
+Burcardo
+Burchardo
+Buric�
+Buritama
+Buriticupu
+Buritin�polis
+Buritirama
+Buritirana
+BurnierR
+Burser�ceas
+But�o
+Butu�
+C�ceres
+C�dson
+C�rio
+C�rita
+C�rites
+C�rlisson
+C�rmen
+C�rmine
+C�rpatos
+C�scula
+C�sper
+C�spio
+C�ssio
+C�tia
+C�vado
+C�ncio
+C�ndito
+C�nidas
+C�cil
+C�culo
+C�ladon
+C�li
+C�lio
+C�cero
+C�lidas
+C�ntia
+C�rdova
+C�rsega
+C�sico
+C�rcio
+C
+CAD
+CAM
+CBN
+CBS
+CC
+CCB
+CCC
+CCCI
+CCCII
+CCCIII
+CCCIV
+CCCIX
+CCCL
+CCCLI
+CCCLII
+CCCLIII
+CCCLIV
+CCCLIX
+CCCLV
+CCCLVI
+CCCLVII
+CCCLVIII
+CCCLX
+CCCLXI
+CCCLXII
+CCCLXIII
+CCCLXIV
+CCCLXIX
+CCCLXV
+CCCLXVI
+CCCLXVII
+CCCLXVIII
+CCCLXX
+CCCLXXI
+CCCLXXII
+CCCLXXIII
+CCCLXXIV
+CCCLXXIX
+CCCLXXV
+CCCLXXVI
+CCCLXXVII
+CCCLXXVIII
+CCCLXXX
+CCCLXXXI
+CCCLXXXII
+CCCLXXXIII
+CCCLXXXIV
+CCCLXXXIX
+CCCLXXXV
+CCCLXXXVI
+CCCLXXXVII
+CCCLXXXVIII
+CCCV
+CCCVI
+CCCVII
+CCCVIII
+CCCX
+CCCXC
+CCCXCI
+CCCXCII
+CCCXCIII
+CCCXCIV
+CCCXCIX
+CCCXCV
+CCCXCVI
+CCCXCVII
+CCCXCVIII
+CCCXI
+CCCXII
+CCCXIII
+CCCXIV
+CCCXIX
+CCCXL
+CCCXLI
+CCCXLII
+CCCXLIII
+CCCXLIV
+CCCXLIX
+CCCXLV
+CCCXLVI
+CCCXLVII
+CCCXLVIII
+CCCXV
+CCCXVI
+CCCXVII
+CCCXVIII
+CCCXX
+CCCXXI
+CCCXXII
+CCCXXIII
+CCCXXIV
+CCCXXIX
+CCCXXV
+CCCXXVI
+CCCXXVII
+CCCXXVIII
+CCCXXX
+CCCXXXI
+CCCXXXII
+CCCXXXIII
+CCCXXXIV
+CCCXXXIX
+CCCXXXV
+CCCXXXVI
+CCCXXXVII
+CCCXXXVIII
+CCI
+CCII
+CCIII
+CCIV
+CCIX
+CCL
+CCLI
+CCLII
+CCLIII
+CCLIV
+CCLIX
+CCLV
+CCLVI
+CCLVII
+CCLVIII
+CCLX
+CCLXI
+CCLXII
+CCLXIII
+CCLXIV
+CCLXIX
+CCLXV
+CCLXVI
+CCLXVII
+CCLXVIII
+CCLXX
+CCLXXI
+CCLXXII
+CCLXXIII
+CCLXXIV
+CCLXXIX
+CCLXXV
+CCLXXVI
+CCLXXVII
+CCLXXVIII
+CCLXXX
+CCLXXXI
+CCLXXXII
+CCLXXXIII
+CCLXXXIV
+CCLXXXIX
+CCLXXXV
+CCLXXXVI
+CCLXXXVII
+CCLXXXVIII
+CCRN
+CCV
+CCVI
+CCVII
+CCVIII
+CCX
+CCXC
+CCXCI
+CCXCII
+CCXCIII
+CCXCIV
+CCXCIX
+CCXCV
+CCXCVI
+CCXCVII
+CCXCVIII
+CCXI
+CCXII
+CCXIII
+CCXIV
+CCXIX
+CCXL
+CCXLI
+CCXLII
+CCXLIII
+CCXLIV
+CCXLIX
+CCXLV
+CCXLVI
+CCXLVII
+CCXLVIII
+CCXV
+CCXVI
+CCXVII
+CCXVIII
+CCXX
+CCXXI
+CCXXII
+CCXXIII
+CCXXIV
+CCXXIX
+CCXXV
+CCXXVI
+CCXXVII
+CCXXVIII
+CCXXX
+CCXXXI
+CCXXXII
+CCXXXIII
+CCXXXIV
+CCXXXIX
+CCXXXV
+CCXXXVI
+CCXXXVII
+CCXXXVIII
+CCom
+CD
+CDC
+CDI
+CDII
+CDIII
+CDIV
+CDIX
+CDL
+CDLI
+CDLII
+CDLIII
+CDLIV
+CDLIX
+CDLV
+CDLVI
+CDLVII
+CDLVIII
+CDLX
+CDLXI
+CDLXII
+CDLXIII
+CDLXIV
+CDLXIX
+CDLXV
+CDLXVI
+CDLXVII
+CDLXVIII
+CDLXX
+CDLXXI
+CDLXXII
+CDLXXIII
+CDLXXIV
+CDLXXIX
+CDLXXV
+CDLXXVI
+CDLXXVII
+CDLXXVIII
+CDLXXX
+CDLXXXI
+CDLXXXII
+CDLXXXIII
+CDLXXXIV
+CDLXXXIX
+CDLXXXV
+CDLXXXVI
+CDLXXXVII
+CDLXXXVIII
+CDU
+CDV
+CDVI
+CDVII
+CDVIII
+CDX
+CDXC
+CDXCI
+CDXCII
+CDXCIII
+CDXCIV
+CDXCIX
+CDXCV
+CDXCVI
+CDXCVII
+CDXCVIII
+CDXI
+CDXII
+CDXIII
+CDXIV
+CDXIX
+CDXL
+CDXLI
+CDXLII
+CDXLIII
+CDXLIV
+CDXLIX
+CDXLV
+CDXLVI
+CDXLVII
+CDXLVIII
+CDXV
+CDXVI
+CDXVII
+CDXVIII
+CDXX
+CDXXI
+CDXXII
+CDXXIII
+CDXXIV
+CDXXIX
+CDXXV
+CDXXVI
+CDXXVII
+CDXXVIII
+CDXXX
+CDXXXI
+CDXXXII
+CDXXXIII
+CDXXXIV
+CDXXXIX
+CDXXXV
+CDXXXVI
+CDXXXVII
+CDXXXVIII
+CDs
+CE
+CEERGS
+CEI
+CELEPAR
+CEP
+CETEF
+CF
+CGC
+CGD
+CGTP
+CI
+CIF
+CIG
+CII
+CIII
+CIP
+CISC
+CIV
+CIX
+CL
+CLI
+CLII
+CLIII
+CLIV
+CLIX
+CLT
+CLV
+CLVI
+CLVII
+CLVIII
+CLX
+CLXI
+CLXII
+CLXIII
+CLXIV
+CLXIX
+CLXV
+CLXVI
+CLXVII
+CLXVIII
+CLXX
+CLXXI
+CLXXII
+CLXXIII
+CLXXIV
+CLXXIX
+CLXXV
+CLXXVI
+CLXXVII
+CLXXVIII
+CLXXX
+CLXXXI
+CLXXXII
+CLXXXIII
+CLXXXIV
+CLXXXIX
+CLXXXV
+CLXXXVI
+CLXXXVII
+CLXXXVIII
+CMI
+CMII
+CMIII
+CMIV
+CMIX
+CML
+CMLI
+CMLII
+CMLIII
+CMLIV
+CMLIX
+CMLV
+CMLVI
+CMLVII
+CMLVIII
+CMLX
+CMLXI
+CMLXII
+CMLXIII
+CMLXIV
+CMLXIX
+CMLXV
+CMLXVI
+CMLXVII
+CMLXVIII
+CMLXX
+CMLXXI
+CMLXXII
+CMLXXIII
+CMLXXIV
+CMLXXIX
+CMLXXV
+CMLXXVI
+CMLXXVII
+CMLXXVIII
+CMLXXX
+CMLXXXI
+CMLXXXII
+CMLXXXIII
+CMLXXXIV
+CMLXXXIX
+CMLXXXV
+CMLXXXVI
+CMLXXXVII
+CMLXXXVIII
+CMP
+CMV
+CMVI
+CMVII
+CMVIII
+CMVM
+CMX
+CMXC
+CMXCI
+CMXCII
+CMXCIII
+CMXCIV
+CMXCIX
+CMXCV
+CMXCVI
+CMXCVII
+CMXCVIII
+CMXI
+CMXII
+CMXIII
+CMXIV
+CMXIX
+CMXL
+CMXLI
+CMXLII
+CMXLIII
+CMXLIV
+CMXLIX
+CMXLV
+CMXLVI
+CMXLVII
+CMXLVIII
+CMXV
+CMXVI
+CMXVII
+CMXVIII
+CMXX
+CMXXI
+CMXXII
+CMXXIII
+CMXXIV
+CMXXIX
+CMXXV
+CMXXVI
+CMXXVII
+CMXXVIII
+CMXXX
+CMXXXI
+CMXXXII
+CMXXXIII
+CMXXXIV
+CMXXXIX
+CMXXXV
+CMXXXVI
+CMXXXVII
+CMXXXVIII
+CNDA
+CNE
+CNN
+CNPJ
+CNPq
+COAF
+COFINS
+COI
+CONIN
+CONMETRO
+CONTRAN
+CP
+CPC
+CPF
+CPI
+CPK
+CPLP
+CPMF
+CPP
+CRIL
+CRP
+CSCE
+CTN
+CTPS
+CTT
+CV
+CVI
+CVII
+CVIII
+CX
+CXC
+CXCI
+CXCII
+CXCIII
+CXCIV
+CXCIX
+CXCV
+CXCVI
+CXCVII
+CXCVIII
+CXI
+CXII
+CXIII
+CXIV
+CXIX
+CXL
+CXLI
+CXLII
+CXLIII
+CXLIV
+CXLIX
+CXLV
+CXLVI
+CXLVII
+CXLVIII
+CXV
+CXVI
+CXVII
+CXVIII
+CXX
+CXXI
+CXXII
+CXXIII
+CXXIV
+CXXIX
+CXXV
+CXXVI
+CXXVII
+CXXVIII
+CXXX
+CXXXI
+CXXXII
+CXXXIII
+CXXXIV
+CXXXIX
+CXXXV
+CXXXVI
+CXXXVII
+CXXXVIII
+Ca�apava
+Ca�m
+Caacala
+Caapor�
+Caapotyragu�
+Caapu�
+Caarap�
+Caasli
+Caatiba
+Cabaleiro
+Cabanelas
+Cabayba
+Cabom
+Cabr�lia
+Cabral
+Cabre�va
+Cabrob�
+Cabul
+Cabzeel
+Cac�
+Cac�m
+Cacaul�ndia
+Cacequi
+Cachoeirinha
+Cacildo
+Cacilhas
+Cacilie
+Cacimbinhas
+Cacoal
+Caconde
+Cacul�
+Cades-Barn�ia
+Cadmiel
+Cadu
+Caetan�polis
+Caetano
+Caetit�
+Cafarnaum
+Cafeara
+Cafel�ndia
+Caftor
+Caftorim
+Cai�
+Cai�uara
+Caiabu
+Caibat�
+Caibi
+Caico
+Caimans
+Cain�
+Caique
+Caira
+Cairu
+Caitano
+Caitlina
+Caiubi
+Caius
+Cajamar
+Cajapi�
+Cajari
+Cajobi
+Cal�oene
+Cal�maco
+Calanta
+Calatrava
+Calazanz
+Calcol
+Calcut�
+Caldazinha
+Caldelas
+Calebe
+Calhamares
+Caliane
+Calidora
+Caliel
+Calil
+Calim�rio
+Calipo
+Calistene
+Calistro
+Calixte
+Calixto
+Calmon
+Caloi
+Calp�rnio
+Caludinho
+Calvin
+Cama�ari
+Camacho
+Camael
+Camala�
+Camamu
+Camanducaia
+Camapu�
+Camaragibe
+Camargo
+Camata
+Camb�
+Camberra
+Cambira
+Cambises
+Camboat�
+Cambodja
+Camboja
+Cambori�
+Cambri
+Cambridge
+Cambu�
+Cambuc�
+Cambuci
+Cambuquira
+Camele�ntidas
+Camet�
+Camilo
+Caminho�
+Camiro
+Camocim
+Camom
+Camp�nia
+Campanari
+Campanh�
+Campelo
+Campin�polis
+Campina�u
+Campinorte
+Campisa
+Camutanga
+Can�
+Can�polis
+Cana�
+Canabarro
+Canabis
+Canabrava
+Canad�
+Canale
+Canapi
+Canarana
+Canario
+Canaveral
+Canaveses
+Canciano
+Cancinila
+Cand�i
+Candace
+Candiba
+Candide
+Candiota
+Cane
+Canedo
+Canef�rias
+Canefora
+Canguaretama
+Canhoba
+Canind�
+Canitar
+Cannes
+Canopeia
+Canopus
+Cant�bria
+Cant�dio
+Cant�lio
+Cantagalo
+Cantanhede
+Cantu�ria
+Cantu
+Canutama
+Canute
+Capad�cia
+Capanema
+Capara�
+Caparica
+Capetinga
+Capibaribe
+Capiberibe
+Capin�polis
+Capistrano
+Capitu
+Capivari
+Capotyra
+Capr�nia
+Capra
+Caprin�deos
+Caputira
+Caputo
+Car�ntia
+Car�sio
+Car�
+Cara�
+Cara�
+Cara�bas
+Caracara�
+Carachi
+Caraguatatuba
+Carambe�
+Carana�ba
+Caranda�
+Carandiru
+Carangola
+Carap�
+Carapebus
+Carapicu�ba
+Carapitanga
+Caratinga
+Carauari
+Carayba
+Carazinho
+Carbonita
+Carca
+Cardoso
+Carea�u
+Cari�s
+Cariacica
+Cariberto
+Carine
+Carinhanha
+Carir�
+Carira
+Cariria�u
+Carissa
+Caritina
+Carl�polis
+Carlene
+Carlinda
+Carline
+Carlinha
+Carlinhos
+Carlito
+Carlo
+Carlomagno
+Carlomano
+Carlote
+Carloto
+Carm�lia
+Carm�sia
+Carm�polis
+Carmelindo
+Carmelino
+Carmem
+Carmencita
+Carmenta
+Carmi
+Carminda
+Carmita
+Carmo
+Carmol�ndia
+Carmosina
+Carna�ba
+Carnaim
+Carnamagia
+Carnegie
+Carniano
+Caroba
+Caroebe
+Carol
+Carole
+Caroline
+Caronte
+Carquemis
+Carrazeda
+Carrel
+Carriacou
+Carriel
+Carrol
+Cartagena
+Cartago
+Caruana
+Carula
+Carupano
+Caruso
+Carutapera
+Carvajal
+Carvalh�polis
+Cas�rio
+Casablanca
+Casadei
+Casagrande
+Casandra
+Casculo
+Casifia
+Casilda
+Casimir
+Casluim
+Caspar
+Cassal
+Cassandro
+Casserengue
+Cassiane
+Cassiano
+Cassil�ndia
+Cassildo
+Cassinga
+Cassiodoro
+Cassiop�ia
+Cassius
+Castel�ndia
+Castel
+Castelar
+Castora
+Castorinho
+Castorino
+Castries
+Cat�nia
+Cat�te
+Cataguases
+Cataldo
+Cataline
+Catalunha
+Catarine
+Catate
+Catende
+Catigu�
+Catmandu
+Catol�ndia
+Catol�
+Catone
+Catos
+Catu�pe
+Catu
+Catuji
+Catumbi
+Catunda
+Catura�
+Caturama
+Caturit�
+Catuti
+Cau�
+Cauanne
+Caubi
+Caucaia
+Cavalcante
+Cavati
+Caxambu
+Caxang�
+Caxing�
+Cazaquist�o
+Cazerim
+Cazim
+Cazuza
+Cebeles
+Cecatti
+Ceci
+Cecile
+Cecilia
+Cecrope
+Cedar
+Cedofeita
+Cedral
+Cedrom
+Cefas
+Cefira
+Ceil�o
+Cel�o
+Cel�sia
+Celene
+Celerin
+Celestin
+Celi
+Celie
+Celine
+Celino
+Celiste
+Celmiro
+Celorico
+Celsius
+Cencr�ia
+Cendi
+Cendira
+Centralina
+Ceratit�deos
+Ceroni
+Cerquilho
+Cerrito
+Certeau
+Cervantes
+Cerveira
+Cesar�ia
+Cesaria
+Cesarone
+Cesca
+Cesinha
+Cesira
+Cetes
+Ceuta
+Cezarina
+Chade
+Chaim
+Chalassa
+Chalita
+Chan
+Chanchu
+Chandler
+Chang
+Chantal
+Chapec�
+Charis
+Charlene
+Charlier
+Charmontiano
+Chau�
+Chaval
+Chavantes
+Checoslov�quia
+Chianca
+Chiapeta
+Chiaradia
+Chibolete
+Chicago
+Childerico
+Ching
+Chipre
+Chogloctuz
+Choiti
+Chopinzinho
+Chor�
+Chorozinho
+Chorroch�
+Chupinguaia
+Chutro
+Cianorte
+Cibele
+Cicer�o
+Cicinho
+Cid�lia
+Cidel�ndia
+Cil�cia
+Cilea
+Cilene
+Cilvandro
+Cimbros
+Cin�pidas
+Cinar�ceas
+Cinara
+Cincinato
+Cinderela
+Cinegiro
+Cinf�es
+Cingapura
+Cintra
+Cipi�o
+Cipo�na
+Cipot�nea
+Cipr�nidas
+Cipriano
+Cips�lidas
+Cir�nio
+Cir�aco
+Cirano
+Cirene
+Cireno
+Cirilo
+Cirineu
+Cirino
+Cirne
+Ciro
+Citin�ceas
+Cl�ria
+Cl�cio
+Cl�ia
+Cl�lio
+Cl�mence
+Cl�o
+Cl�opas
+Cl�ver
+Cl�cie
+Cl�maco
+Cl�mene
+Cl�nio
+Cl�tarco
+Cl�dio
+Cl�e
+Cl�vis
+Claire
+Claito
+Clar�ncio
+Claraval
+Clarence
+Clarice
+Clarimundo
+Clarindo
+Clarisse
+Claude
+Claudel
+Claudemir
+Claudete
+Claudiano
+Claudie
+Claudine
+Claudionor
+Cle�bulo
+Cle�maco
+Cle�patra
+Cle�mbroto
+Cle�menes
+Cle�nidas
+Cleandro
+Cleanto
+Clearco
+Cleber
+Cleide
+Cleidson
+Clemen�o
+Clemenciano
+Clenilce
+Cleodoro
+Cleom�nia
+Cleomedes
+Cleon�ncio
+Cleonice
+Cleonir
+Cleopt�lemo
+Clete
+Cleto
+Cleuza
+Clevel�ndia
+Clim�rio
+Clim�maco
+Clio
+Clistenes
+Clito
+Clo�
+Clodoaldo
+Clodolfo
+Clodomiro
+Clodorico
+Clodoveu
+Clodovico
+Clodovil
+Clodoviu
+Clodulfo
+Clopas
+Clorinda
+Clostridium
+Clot�rio
+Clotilde
+Coaraci
+Coaracyara�
+Coari
+Cocalinho
+Cod�
+Codaj�s
+Codomano
+Coiguara
+CoimbraO
+Coit�
+Coitezeiro
+Col�der
+Col�mbia
+Col�mbia
+Cola�as
+Colberto
+Colene
+Colmano
+Colodino
+Colomano
+Colombano
+Colombe
+Colvara
+Conde�ba
+Condeixa
+Conf�cio
+Confresa
+Coni�
+Conias
+Conradinho
+Conrado
+Constan�a
+Constance
+Constantinopla
+Constantinus
+Consuelo
+Contardo
+Cop�rdia
+Copacabana
+Copenhaga
+Copenhague
+Copertino
+Cor�lia
+Cor�
+Coras�
+Corazim
+Corb�
+Corb�lia
+Corba
+Corbiniano
+Cord�lia
+Cordeir�polis
+Cordisburgo
+Cordisl�ndia
+Corea�
+Corguinho
+Coribaba
+Coribe
+Corinebacterium
+Corinthians
+Corn�lia
+Coromandel
+Corr�a
+Corral
+Correntina
+Corsi
+Cortez
+Corumb�
+Corumba�ba
+Corumbata�
+Corumbiara
+Corup�
+Coruripe
+Cos�
+Cosme
+Costanobre
+Cotegipe
+Cotipor�
+Cotrigua�u
+Coutinho
+Couviniano
+Covilh�
+Cox
+Coxixola
+Coz
+Cozeba
+Cr�tero
+Cr�ssida
+Cr�spulo
+Cr�stias
+Cr
+Cra�bas
+Cranau
+Crate�s
+Crates
+Cravol�ndia
+Cred�
+Cresc�ncio
+Crescenciano
+Crescentino
+Crescenzio
+Creso
+Creteu
+Creusa
+Cribari
+Crici�ma
+Crimeia
+Crinis
+Cript�fita
+Cris�gono
+Cris�malo
+Cris�polis
+Crisniano
+Crispim
+Crispiniano
+Crispino
+Crispinus
+Crissiumal
+Crist�lia
+Crist�foro
+Crist�polis
+Crist�v�o
+Cristal�ndia
+Cristian�polis
+Cristiane
+Cristiano
+Cristin�polis
+Cristininha
+Cristodoro
+Cristolino
+Crix�s
+Croat�
+Crom�nia
+Crucil�ndia
+Cruz�lia
+Cruz�lia
+Cruzi
+Cruzmaltina
+Cubat�o
+Cubati
+Cuiab�
+Cuitegi
+Cujubim
+Cumaru
+Cumbe
+Cumbica
+Cunene
+Cunhambebe
+Cunhata�
+Cuparaque
+Cupelo
+Cupertino
+Cupira
+Cura��
+Cura�ao
+Curdist�o
+Curi�cio
+Curi�cios
+Curiati
+Curimat�
+Curion�polis
+Curitiba
+Curituba
+Curralinho
+Curricula
+Cursino
+Curu�
+Curu��
+Curu
+Cururupeba
+Cururupu
+Curvel�ndia
+Curvelo
+Cus�
+Cusa�as
+Cusi
+Cust�ias
+Cuxe
+Cuza
+Cyprianus
+Cz
+D�cia
+D�lton
+D�maso
+D�mocles
+D�rio
+D�vila
+D�maris
+D�a
+D�bora
+D�cio
+D�li
+D�lcio
+D
+D.
+DC
+DCC
+DCCC
+DCCCI
+DCCCII
+DCCCIII
+DCCCIV
+DCCCIX
+DCCCL
+DCCCLI
+DCCCLII
+DCCCLIII
+DCCCLIV
+DCCCLIX
+DCCCLV
+DCCCLVI
+DCCCLVII
+DCCCLVIII
+DCCCLX
+DCCCLXI
+DCCCLXII
+DCCCLXIII
+DCCCLXIV
+DCCCLXIX
+DCCCLXV
+DCCCLXVI
+DCCCLXVII
+DCCCLXVIII
+DCCCLXX
+DCCCLXXI
+DCCCLXXII
+DCCCLXXIII
+DCCCLXXIV
+DCCCLXXIX
+DCCCLXXV
+DCCCLXXVI
+DCCCLXXVII
+DCCCLXXVIII
+DCCCLXXX
+DCCCLXXXI
+DCCCLXXXII
+DCCCLXXXIII
+DCCCLXXXIV
+DCCCLXXXIX
+DCCCLXXXV
+DCCCLXXXVI
+DCCCLXXXVII
+DCCCLXXXVIII
+DCCCV
+DCCCVI
+DCCCVII
+DCCCVIII
+DCCCX
+DCCCXC
+DCCCXCI
+DCCCXCII
+DCCCXCIII
+DCCCXCIV
+DCCCXCIX
+DCCCXCV
+DCCCXCVI
+DCCCXCVII
+DCCCXCVIII
+DCCCXI
+DCCCXII
+DCCCXIII
+DCCCXIV
+DCCCXIX
+DCCCXL
+DCCCXLI
+DCCCXLII
+DCCCXLIII
+DCCCXLIV
+DCCCXLIX
+DCCCXLV
+DCCCXLVI
+DCCCXLVII
+DCCCXLVIII
+DCCCXV
+DCCCXVI
+DCCCXVII
+DCCCXVIII
+DCCCXX
+DCCCXXI
+DCCCXXII
+DCCCXXIII
+DCCCXXIV
+DCCCXXIX
+DCCCXXV
+DCCCXXVI
+DCCCXXVII
+DCCCXXVIII
+DCCCXXX
+DCCCXXXI
+DCCCXXXII
+DCCCXXXIII
+DCCCXXXIV
+DCCCXXXIX
+DCCCXXXV
+DCCCXXXVI
+DCCCXXXVII
+DCCCXXXVIII
+DCCI
+DCCII
+DCCIII
+DCCIV
+DCCIX
+DCCL
+DCCLI
+DCCLII
+DCCLIII
+DCCLIV
+DCCLIX
+DCCLV
+DCCLVI
+DCCLVII
+DCCLVIII
+DCCLX
+DCCLXI
+DCCLXII
+DCCLXIII
+DCCLXIV
+DCCLXIX
+DCCLXV
+DCCLXVI
+DCCLXVII
+DCCLXVIII
+DCCLXX
+DCCLXXI
+DCCLXXII
+DCCLXXIII
+DCCLXXIV
+DCCLXXIX
+DCCLXXV
+DCCLXXVI
+DCCLXXVII
+DCCLXXVIII
+DCCLXXX
+DCCLXXXI
+DCCLXXXII
+DCCLXXXIII
+DCCLXXXIV
+DCCLXXXIX
+DCCLXXXV
+DCCLXXXVI
+DCCLXXXVII
+DCCLXXXVIII
+DCCV
+DCCVI
+DCCVII
+DCCVIII
+DCCX
+DCCXC
+DCCXCI
+DCCXCII
+DCCXCIII
+DCCXCIV
+DCCXCIX
+DCCXCV
+DCCXCVI
+DCCXCVII
+DCCXCVIII
+DCCXI
+DCCXII
+DCCXIII
+DCCXIV
+DCCXIX
+DCCXL
+DCCXLI
+DCCXLII
+DCCXLIII
+DCCXLIV
+DCCXLIX
+DCCXLV
+DCCXLVI
+DCCXLVII
+DCCXLVIII
+DCCXV
+DCCXVI
+DCCXVII
+DCCXVIII
+DCCXX
+DCCXXI
+DCCXXII
+DCCXXIII
+DCCXXIV
+DCCXXIX
+DCCXXV
+DCCXXVI
+DCCXXVII
+DCCXXVIII
+DCCXXX
+DCCXXXI
+DCCXXXII
+DCCXXXIII
+DCCXXXIV
+DCCXXXIX
+DCCXXXV
+DCCXXXVI
+DCCXXXVII
+DCCXXXVIII
+DCI
+DCII
+DCIII
+DCIV
+DCIX
+DCL
+DCLI
+DCLII
+DCLIII
+DCLIV
+DCLIX
+DCLV
+DCLVI
+DCLVII
+DCLVIII
+DCLX
+DCLXI
+DCLXII
+DCLXIII
+DCLXIV
+DCLXIX
+DCLXV
+DCLXVI
+DCLXVII
+DCLXVIII
+DCLXX
+DCLXXI
+DCLXXII
+DCLXXIII
+DCLXXIV
+DCLXXIX
+DCLXXV
+DCLXXVI
+DCLXXVII
+DCLXXVIII
+DCLXXX
+DCLXXXI
+DCLXXXII
+DCLXXXIII
+DCLXXXIV
+DCLXXXIX
+DCLXXXV
+DCLXXXVI
+DCLXXXVII
+DCLXXXVIII
+DCV
+DCVI
+DCVII
+DCVIII
+DCX
+DCXC
+DCXCI
+DCXCII
+DCXCIII
+DCXCIV
+DCXCIX
+DCXCV
+DCXCVI
+DCXCVII
+DCXCVIII
+DCXI
+DCXII
+DCXIII
+DCXIV
+DCXIX
+DCXL
+DCXLI
+DCXLII
+DCXLIII
+DCXLIV
+DCXLIX
+DCXLV
+DCXLVI
+DCXLVII
+DCXLVIII
+DCXV
+DCXVI
+DCXVII
+DCXVIII
+DCXX
+DCXXI
+DCXXII
+DCXXIII
+DCXXIV
+DCXXIX
+DCXXV
+DCXXVI
+DCXXVII
+DCXXVIII
+DCXXX
+DCXXXI
+DCXXXII
+DCXXXIII
+DCXXXIV
+DCXXXIX
+DCXXXV
+DCXXXVI
+DCXXXVII
+DCXXXVIII
+DF
+DI
+DIEESE
+DII
+DIII
+DIS
+DIV
+DIX
+DJ
+DJU
+DLI
+DLII
+DLIII
+DLIV
+DLIX
+DLV
+DLVI
+DLVII
+DLVIII
+DLX
+DLXI
+DLXII
+DLXIII
+DLXIV
+DLXIX
+DLXV
+DLXVI
+DLXVII
+DLXVIII
+DLXX
+DLXXI
+DLXXII
+DLXXIII
+DLXXIV
+DLXXIX
+DLXXV
+DLXXVI
+DLXXVII
+DLXXVIII
+DLXXX
+DLXXXI
+DLXXXII
+DLXXXIII
+DLXXXIV
+DLXXXIX
+DLXXXV
+DLXXXVI
+DLXXXVII
+DLXXXVIII
+DNA
+DOC
+DPOC
+DPT
+DV
+DVI
+DVII
+DVIII
+DX
+DXC
+DXCI
+DXCII
+DXCIII
+DXCIV
+DXCIX
+DXCV
+DXCVI
+DXCVII
+DXCVIII
+DXI
+DXII
+DXIII
+DXIV
+DXIX
+DXL
+DXLI
+DXLII
+DXLIII
+DXLIV
+DXLIX
+DXLV
+DXLVI
+DXLVII
+DXLVIII
+DXV
+DXVI
+DXVII
+DXVIII
+DXX
+DXXI
+DXXII
+DXXIII
+DXXIV
+DXXIX
+DXXV
+DXXVI
+DXXVII
+DXXVIII
+DXXX
+DXXXI
+DXXXII
+DXXXIII
+DXXXIV
+DXXXIX
+DXXXV
+DXXXVI
+DXXXVII
+DXXXVIII
+Daciano
+Dadr�
+Dafn�
+Dafn�idas
+Dafni�deos
+Dagmar
+Dago
+Dagoberto
+Dagom
+Daiana
+Daima
+Dala�as
+Dale
+Dalia
+Dalila
+Dalita
+Dalm�cia
+Dalmanuta
+Dalmiro
+Dalmo
+Daltivo
+Dalva
+Dalvina
+Dalziza
+Dam�sio
+Dam�o
+Damarina
+Dami�o
+Damian�polis
+Damiano
+Damol�ndia
+Dan�bio
+Dan�sa
+Dandara
+Danelise
+Daniano
+Daniel
+Daniele
+Danilo
+Dantas
+Dantinho
+Danton
+Danuta
+Daom�
+Dara
+Darci
+Darcin�polis
+Darcom
+Dardanelos
+Dardano
+Dariana
+Darlene
+Darlise
+Daros
+Darvin
+Darvina
+Darwin
+Dasi�ridas
+Dasip�didas
+Dasipod�deos
+Dasiur�deos
+Davi
+David
+Davidson
+Davin�polis
+Davino
+Dayse
+Dec�pole
+Dec�polis
+Decamer�o
+Decaro
+Deise
+Dela�as
+Delamare
+Delf�nidas
+Delfin�polis
+Delfino
+Delfos
+Delila
+Delma
+Delmar
+Delmiro
+Delourdes
+Delza
+Dem�ter
+Dem�trio
+Dem�crates
+Dem�crito
+Dem�dico
+Dem�doco
+Dem�stenes
+Demades
+Demar
+Demarato
+Demelza
+Demerval
+Demetriano
+Demi
+Dena
+Denilson
+Denise
+Denivaldo
+Deocl�cio
+Deocleciano
+Deod�polis
+Deodato
+Deodoro
+Deogr�cias
+Deolindo
+Dep.
+Derlinda
+Dermest�deos
+Dermeval
+Dernival
+Desemb.
+Desid�rio
+Detroit
+Di�lia
+Di�neces
+Di�genes
+Di�scoro
+Di�trefes
+Dian�polis
+Diane
+Dido
+Diego
+Dilermando
+Dilma
+Dilmar
+Dilza
+Dimitri
+Din�
+Din�sio
+Dinab�
+Dinalva
+Dinamarco
+Dinarte
+Diniz
+Dinor�
+Diocl�cio
+Diocl�ia
+Diocleciano
+Diodoro
+Diofanto
+Diogo
+Dioguina
+Diomar
+Diomedes
+Dion�a
+Dione
+Dioniro
+Dionysius
+Dips�ceas
+Dirce
+Dirceu
+Divaldo
+Divin�sia
+Divin�polis
+Divinol�ndia
+Divis�polis
+DjalmaO
+Djamena
+Djanira
+Djavan
+Djibuti
+Dolar�cio
+Dolc�dio
+Dolcin�polis
+Dolcina
+Dom�nico
+Dom�cio
+Domiciano
+Dominica
+Dominique
+Domiriano
+Domitila
+Domno
+Don�rio
+Don
+Donaciano
+Donaldo
+Dores�polis
+Doriano
+Dorina
+Dorinda
+Dorinha
+Dorot�ia
+Dorot�o
+Douglas
+Douradina
+Douradoquara
+Dourival
+Doverl�ndia
+Dpto.
+Dra.
+Drisana
+Dromice�deos
+Droser�ceas
+Drummond
+Du�la
+Du�lio
+Duarte
+Duartina
+Dulc�dio
+Dulce
+Dulcelene
+Dulcelina
+Dulcie
+Dulcilene
+Dulcin�a
+Dulcino
+Dumar�
+Duncan
+Dunga
+Dunia
+Dunquerque
+Durand�
+Durval
+Durvalino
+E�cido
+E�a�
+E�a�na
+E�a
+E�abara
+E�araia
+E.
+EC
+EDP
+EFTA
+EN
+ES
+ESA
+ETAR
+EUA
+EXM�.
+EXM�.
+EXO
+Ebe
+Eben�zer
+Eberardina
+Eberardo
+Eberarto
+Ebes
+Ebiasafe
+Ebraim
+Ebro
+Ebru
+Echapor�
+Ecl�ia
+Eclesiastes
+Ecocuaba
+Ecomonhanga
+Ecoporanga
+Ecrom
+Ed�ia
+Ed�sio
+Ed�lio
+Edberto
+Edealina
+Edegar
+Edel
+Edelberto
+Edeleine
+Edelfrida
+Edeline
+Edelmar
+Edelmira
+Edeltrudes
+Edemar
+Edgar
+Edgardo
+Edila
+Edilberto
+Edilene
+Edileusa
+Edilia
+Edilson
+Edimburgo
+Edimercia
+Ediraldo
+Edissa
+Edivaldo
+Edm�lson
+Edmagna
+Edmar
+Edmo
+Edmondo
+Edmundo
+Ednaldo
+Ednalva
+Ednei
+Ednilson
+Edno
+Edoardo
+Edom
+Edrealdo
+Edrei
+Edson
+Edu�no
+Edu
+Eduardo
+Edvaldo
+Edvino
+Ef�
+Efat�
+Efig�nio
+Efraim
+Efrate
+Egbaldo
+Egberto
+Eginardo
+Egipto
+Egito
+Eguinardo
+Eiffel
+Einardo
+Eirunep�
+El�dio
+El�o
+El�usis
+El�cio
+El�gio
+El�i
+Elaine
+Elane
+Eldoro
+Eleanor
+Eleaquim
+Eleonor
+Eleonore
+Elesb�o
+Eletrobr�s
+Eli�zer
+Eliane
+Eliano
+Eliaquim
+Elice
+Eliel
+Elienai
+Eliete
+Eliezer
+Elifaz
+Elimas
+Elimeleque
+Elis�rio
+Elis�ngela
+Elisabete
+Elisandra
+Elisb�o
+Elise
+Elisete
+Eliseu
+Elisi�rio
+Elissa
+Elma
+Elmad�
+Elmano
+Elmiro
+Elo�
+Eloim
+Elvino
+Elvire
+Elviro
+Em�rico
+Em�lio
+Emanuel
+Emanuele
+Emater
+Emba�ba
+Embrapa
+Embratel
+Embratur
+Embu
+Emer�ncio
+Emerenciano
+Emerentiana
+Emilian�polis
+Emiline
+En�as
+En�dio
+Enedina
+Eng
+Eng.�
+Eng.�
+Eng.
+Engelberto
+Engr�cio
+Enos
+Enriqueta
+Er�clio
+Er�neas
+Eraldo
+Erasmo
+Erc�lio
+Eremildo
+ErenaldoPO
+Erenilda
+Eriberto
+Erinaldo
+Erm�nio
+Erm�rio
+Ermelinda
+Ermelino
+Ermengarda
+Ermesindo
+Ermino
+Ern�ni
+Ern�
+Ernestine
+Ernesto
+Erondino
+Ers�lio
+Erv�lia
+Ervino
+Es�
+Es�dio
+Esa�
+Esb�
+Escandin�via
+Escarabeidas
+Escobar
+Escorp�nidas
+Escrib�nio
+Esdaras
+Esdra
+Eslov�nia
+Esm�ria
+Esmeriano
+Esp�ridas
+Esp�rtaco
+Esp�ndola
+Esp�nola
+Esp.
+Espanha
+Esparta
+Esperantin�polis
+Esperantina
+Esperidi�o
+Espin�cidas
+Espinac�deos
+Espinosa
+Espiridi�o
+Est�cio
+Est�nio
+Est�v�o
+Est�ria
+Est�nio
+Est�nia
+Estaline
+Estalinegrado
+Estancinha
+Estanislau
+Estelazinha
+Estelinha
+Estelita
+Ester
+Estern�deos
+Estocolmo
+Estrasburgo
+Et�ocles
+Etelberto
+Etelvino
+Eter
+Etevaldo
+Eti�pia
+Euc�rio
+Eucl�ia
+Euclides
+Eud�ria
+Eud�ssio
+Eud�xio
+Eudemo
+Eudes
+Eudine
+EudorR
+Eudorico
+Euf�mio
+Eufr�sio
+Eufrates
+Eufrone
+Eufrosino
+Eug�mio
+Eug�nio
+Eugen�polis
+Eugeniano
+Eul�dio
+Eul�lio
+Euler
+Eulino
+Eum�nio
+Eum�nis
+Eun�pio
+Eun�polis
+Eun�cio
+Eunice
+Euniciano
+Eur�sia
+Eur�alo
+Eur�bio
+Eur�dice
+Eur�maco
+Eur�ndio
+Eur�pede
+Eur�pides
+Eurib�ades
+Euricl�ia
+Euricles
+Eurico
+Eurides
+Eurodo
+Europa
+Europarlamento
+Eus�bio
+Eust�quio
+Eust�rgio
+Eut�lio
+Eut�crates
+Eutuber�ceas
+Euvaldo
+Euz�bio
+Ev�ngelo
+Ev�lio
+Ev�ncio
+Ev�dio
+Evair
+Evaldo
+Evaline
+Evandro
+Evangelino
+Evanildo
+Evanina
+Evanira
+Evariste
+Evaristo
+Eveline
+Evelise
+Everaldino
+Everaldo
+Everardo
+Everest
+Evil�sio
+Exa.
+Ez�m
+Ezel
+Ezelino
+Ezeque
+Ezequias
+Ezequiel
+Ezer
+Eziom
+F�bio
+F�lix
+F�lvio
+FAB
+FAO
+FAP
+FBI
+FC
+FCP
+FCUP
+FCVS
+FEBRABAN
+FENABAN
+FEO
+FGTS
+FGV
+FILs
+FM
+FMI
+FOS
+FPF
+FSF
+Fab�ola
+Fabiane
+Fabinho
+Fabr�cio
+Fabr�zio
+Fagundo
+Fal�pio
+Falc�dio
+Farol�ndia
+Faustiniano
+Fedato
+Federico
+Feij�
+Feitosa
+Fel�cio
+Feliciano
+Felinto
+Felipe
+Felisbelo
+Felisberto
+Felisbino
+Felisburgo
+Felismino
+Felixl�ndia
+Ferdinando
+Fermo
+Fern�o
+Fernand�polis
+Fernandes
+Fernandinha
+FernandoPOVW
+Ferrari
+Ferraz
+Fess�nia
+Fev.
+Fi�crio
+Fid�lio
+Fid�lis
+Fid�nciano
+Fid�ncio
+Fidel
+Fidelino
+Figueir�o
+Figueir�
+Figueir�polis
+Figueredo
+Fil�nico
+Filad�lfia
+Filaletes
+Filem�o
+Filemon
+Filiberto
+Filinto
+Finl�ndia
+Fl�vio
+Fl�rida
+Flauzino
+Flaviano
+Flavina
+Flodoaldo
+Flor�nia
+Florbela
+Floren�o
+Florence
+Florenciano
+Florest�polis
+Florestano
+Florian�polis
+Florinda
+Florino
+Florisbela
+Florismundo
+Florisvaldo
+Florival
+Fonseca
+Fontoura
+Fort�nio
+Fortunato
+Fr�is
+Fraiburgo
+Franc�lio
+Francelino
+Frances
+Francesco
+Francin�polis
+Francine
+Francisc�polis
+Frankfurt
+Fraz�o
+Fredegundo
+Frederico
+Friburgo
+Fridolino
+Frieda
+Frontiniano
+Fulberto
+Fulg�ncio
+Funil�ndia
+G�brio
+G�lio
+G�rson
+G�sio
+G�ncio
+G�ngora
+G.
+GATT
+GH
+GNR
+GO
+GP
+GPL
+Gab�nio
+Gabeira
+Gaborone
+GabrielR
+Gabriele
+Gadiel
+Gaet�
+Gaetano
+Gal�cia
+Gal�sio
+Gal�rio
+Galag�deos
+Galambos
+Galassi
+Galdo
+Galiano
+Galieno
+Galindo
+Galv�o
+Gamaliel
+Gamboarota
+Gandolfo
+Ganges
+Garamb�u
+Gararu
+Garatuba
+Garcez
+Garcia
+Garcindo
+Gardner
+Garibaldi
+Garopaba
+Garruchos
+Gaud�ncio
+Gaudiano
+Gaurama
+Gavino
+Ge�rgio
+Gebal
+Gedalias
+Gede�o
+Geder�
+Geisel
+Geison
+Gelmiro
+Gelsomino
+Gelvira
+Gem�nio
+Gen�sio
+Genaro
+Genebaldo
+Genesar�
+Genildo
+Genito
+Genival
+Genivaldo
+Geno�no
+George
+Georgete
+Georgine
+Georgino
+Geovani
+Ger�s
+Ger�lamo
+Ger�ncio
+Ger�ncio
+Geraldes
+Geraldine
+Geraldo
+Gerardo
+Gerberto
+Gercino
+Geremaro
+Geremia
+Germiniano
+Geron
+Gerusa
+Gerute
+Gerv�sio
+Gervais
+Gervase
+Gervino
+Geslinda
+Gestapo
+Gesu�no
+Gesualdo
+Get�lio
+Gi�o
+Gi�como
+Giancarlo
+Gianfranco
+Gibe�
+Gibe�o
+Gibral
+Gibraltar
+Gibson
+Gidel
+Gilberto
+Gild�sio
+Gild�o
+Gildete
+Gildo
+GilmarR
+Gilsania
+Gilson
+Gilton
+Gilv�nia
+Gilvan
+Ginate
+Gines
+Gino
+Giobre
+Gioconda
+Giocondiano
+Giocondino
+Giordano
+Giorgino
+Giraldo
+Girardo
+Giru�
+Gis�lia
+Giselda
+Gisele
+Gislaine
+Gislane
+Gislene
+Gisleno
+Giuliano
+Givanildo
+Giz�
+Gl�uber
+Gl�lia
+Gl�nio
+Glacinda
+Gladistone
+Glauce
+Glaucil�ndia
+Gleice
+Gleide
+Gleusa
+Glorinha
+Goai�nia
+Goberto
+God�i
+Godardo
+Godofredo
+Godovino
+Godu�no
+Goi�nia
+Goiabal
+Goian�
+Goian�polis
+Goian�sia
+Goiandira
+Goianinha
+Goianira
+Goianorte
+Goiatins
+Goiatuba
+Goiim
+Goim
+Goioer�
+Goioxim
+Goitacases
+Gol�
+Gon�alo
+Gon�alves
+Gondolfo
+Gontijo
+Gontr�o
+Gonzaga
+Gonzaguinha
+Gonzales
+Goulart
+Gouveia
+Gouvel�ndia
+Gr�cio
+Gr�ndola
+Gr�cia
+Grac�lio
+Gracho
+Graciano
+Graciema
+Graciete
+Gracila
+Graciliano
+Gracindo
+Graciniano
+Graco
+Grageru
+Graham
+Graja�
+Gramsci
+Gratiniano
+Gratio
+Gratulino
+Gravat�
+Gravata�
+Gravatal
+Gravino
+Gravis
+Graz
+Graziano
+Graziela
+Greenwich
+Greg�rio
+Gregori
+Grimaldo
+Griselda
+Groa�ras
+Groenl�ndia
+Gronel�ndia
+Grupiara
+Gu�lter
+Gua�u�
+Gua�u
+Gua�ba
+Guabiju
+Guabiruba
+Guacira
+Guadalajara
+Guadalquivir
+Guadalupe
+Guadiana
+Guai�ara
+Guai�ba
+Guaiani
+Guaimb�
+Guaira��
+Guaixar�
+Guajeru
+Gualberto
+Gualt�rio
+Gualtar
+Gualtiero
+Guam�
+Guam
+Guamar�
+Guamiranga
+Guanabara
+Guanambi
+Guanh�es
+Guant�namo
+Guap�
+Guap�
+Guapia�u
+Guapiara
+Guapimirim
+Guapirama
+Guapor�
+Guapor�
+Guaporema
+Guar�obi
+Guara�a�
+Guara�
+Guara�ta
+Guarabira
+Guaraci
+Guaraciaba
+Guaraciama
+Guaraciba
+Guaramiranga
+Guaramirim
+Guaran�sia
+Guarania�u
+Guarapari
+Guarapiranta
+Guarapuava
+Guaraque�aba
+Guarar�
+Guararapes
+Guararema
+Guaratinga
+Guaratinguet�
+Guaratuba
+Guare�
+Guaru
+Guaruj�
+Guata�ara
+Guatamb�
+Guatapar�
+Guataporanga
+Guatemala
+Guattari
+Guaxup�
+Guayana
+Gudgod�
+Guercino
+Guerda
+Guerino
+Guevara
+Guga
+Gugelmin
+Guidinha
+Guidoval
+Guigiu
+Guilhermino
+Guimar�nia
+Guimar�es
+Guin�-Bissau
+Guinevere
+Guiomar
+Guiomarzinha
+Guiratinga
+Guiricema
+Guldalii
+Guliver
+Gurgel
+Gurgu�ia
+Gurinh�m
+Gurinhat�
+Gurj�o
+Gurup�
+Gurupi
+Gusm�o
+Gustavo
+Gutemberg
+Guzol�ndia
+H�lia
+H�ber
+H�cuba
+H�dia
+H�lber
+H�lcio
+H�lder
+H�rcules
+H�rica
+H�ber
+H�mero
+H.
+HAV
+HB
+HBS
+HBV
+HCG
+HCV
+HDL
+HDV
+HIS
+HIV
+HPV
+Haba�as
+Habacuque
+Habazinias
+Habermas
+Habor
+Habsburgos
+Habur
+Hacalias
+Hacat�
+Had�
+Hadade
+Hadadezer
+Hadar
+Hadassa
+Hadata
+Hadom
+Hador�o
+Hadraque
+Hafa
+Hafaraim
+Hagabe
+Hagar
+Hagi
+Hagias
+Hagri
+Haia
+Haiaiel
+Haid�
+Haifa
+Hail
+Haimon
+Hairote
+Haiti
+Hajar
+Hajime
+Halaque
+Hali
+Halim
+Halo�s
+Halul
+Hamal
+Hamaleque
+Hamas
+Hamate
+Hamburgo
+Hamilton
+Hamim
+Hamolequete
+Hamom
+Hamur�bi
+Hamutal
+Han�
+Han�bal
+Han�i
+Han�ver
+Hananel
+Hanani
+Hanbal
+Handel
+Hanes
+Hani
+Haniel
+Hanr�o
+Hans
+Hansel
+Hanuc�
+Haquer�m
+Haquerem
+Haquil�
+Har�s
+Har�
+Hara�as
+Harade
+Harahel
+Harare
+Harefe
+Hares.
+Haresete
+Hariberto
+Hariel
+Harim
+Haro�
+Haroldo
+Harosete
+Hartz
+Hasabias
+Hasabn�
+Hasabn�ias
+Hasadias
+Hasbadana
+Hasem
+Hasita
+Hasmona
+Hasor
+Hasub�
+Hasube
+Hasufa
+Hasum
+Hataav�
+Hatate
+Haticom
+Hatifa
+Hatil
+Hatim
+Hatita
+Haur�
+Hava�
+Havil�
+Havote
+Haza�as
+Hazael
+Hazar
+Hazarmav�
+Hazazom
+Hazebaim
+Hazel
+Hazelelponi
+Hazer
+Hazerote
+Haziel
+Hazim
+Hazine
+Hazo
+Hazor
+Hazurim
+Hebe
+Hecat�nquiros
+Hecate
+Hector
+Heda
+Hefer
+Hefesto
+Hefzib�
+HegarR
+Hegel
+Heide
+Heidi
+Heitor
+Heitora�
+Hel�
+Hel�dio
+Hel�
+Hel�m
+Helaine
+Helam
+Helba
+Helbom
+Helcai
+Helcate
+Helcias
+Heldai
+Hele
+Helede
+Helefe
+Helemenas
+Helen
+Heleonora
+Heleque
+Helez
+Helga
+Heli�polis
+Heli
+Heliberto
+Helicobacter
+Helier
+Heliodoro
+Helma
+Helmuti
+Helo�sa
+Helom
+Hels�nquia
+Helton
+Hem�
+Hemam
+Hemet�rio
+Hemo
+Hemor
+Henadade
+Hend�
+Henderson
+Henedita
+Henoque
+Henri
+Henrique
+Henriqueta
+Henry
+Her�cles
+Her�clio
+Her�clito
+Her�dio
+Her�doto
+Heracleias
+Herberto
+Herbes
+Herc�lio
+Hercul�ndia
+Herete
+Heribaldo
+Heriberto
+Herivaldo
+Herm�genes
+Hermano
+Hermenegildo
+Hermeto
+Hermine
+Hermos
+Hern�ni
+Hernandes
+Herocles
+Herod�ades
+Herodes
+Herodi�o
+Herodias
+Herondina
+Heros
+Hers�lio
+Herta
+Herval
+Herveiras
+Hes�odo
+Hesbom
+Hesede
+Hesmom
+Hesrai
+Hetangiano
+Hibrael
+Hidai
+Hidalgo
+Hidelbrando
+Hideo
+Hidequel
+Hidrol�ndia
+Hidrolina
+Hiel
+Hier�polis
+Hiero
+Hieto
+Higaiom
+Higino
+Higuchi
+Hil�m
+Hilal
+Hilde
+Hildeberto
+Hildefonso
+Hildegardo
+Hildemar
+Hilderico
+Hildete
+Hildo
+Hilel
+Hileu
+Hilmar
+Hilmi
+Hilquias
+Hilton
+Himalia
+Hinom
+Hiponax
+Hir�o
+Hir�nides
+Hiram
+Hirieu
+Hiro�to
+Hirom
+Hiromi
+Hiromitsu
+Hiroshima
+Hisp�nia
+Hitler
+Ho�o
+Hoare
+Hob�
+Hoba�as
+Hobabe
+Hodavias
+Hode
+Hodes
+Hodeva
+Hofra
+Hogla
+Holambra
+Holom
+Hom�
+Homer
+Homero
+Hon�rio
+Honda
+Honduras
+Hong
+Honorato
+Honorico
+Honorinda
+Honorino
+Honorius
+Honos
+Hope
+Hor�cio
+Hor�cios
+Hor�m
+Horace
+Horebe
+Horm�
+Horom
+Horonaim
+Hort�ncio
+Hort�nsio
+Hortol�ndia
+Hos�
+Hosa�as
+Hosa
+Hosama
+Hosea
+Host�lio
+Hot�o
+Hotir
+Houdini
+Houri
+Huberte
+Hucoque
+Huda
+Hudson
+Huf�
+Hugo
+Hugolino
+Hulda
+Humam
+Humberto
+Hume
+Hungria
+Hunta
+Hupa
+Hupim
+Hur�o
+Hur
+Hurai
+Huraiva
+Hurass�
+Hus�
+Hus�o
+Husai
+Husam
+Husim
+Husna
+Huzote
+Hz
+I�sio
+I�men
+I�mene
+I�na
+I
+I.
+IBGE
+IBM
+IBOVESPA
+ICEP
+ICMS
+ICV
+ICVM
+IGA
+IGP
+II
+III
+IM
+INCC
+INPC
+INPI
+INSS
+IOF
+IPA
+IPC
+IPCA
+IPE
+IPI
+IPPAR
+IPPC
+IRC
+IRPJ
+IRS
+ISBN
+ISO
+ISS
+ISSN
+ITE
+ITR
+IURD
+IV
+IX
+Ia�u
+Ia�
+Iac�
+Iacanga
+Iaci
+Iaciara
+Iaco
+Iacri
+Iandeyara
+Iapuama
+Iasi�o
+Iasmim
+Iaund�
+Ibaiti
+Ibama
+Ibar
+Ibarama
+Ibaretama
+Ibat�
+Ibateguara
+Ibatiba
+Iber�
+Ibertioga
+Ibi�
+Ibi�
+Ibi�na
+Ibia��
+Ibia�
+Ibiam
+Ibiapaba
+Ibiapina
+Ibiara
+Ibiassuc�
+Ibicar�
+Ibicara�
+Ibicoara
+Ibicu�
+Ibicuitinga
+Ibidas
+Ibimirim
+Ibinayaya
+Ibipeba
+Ibipor�
+Ibiquera
+Ibir�
+Ibira�u
+Ibiracatu
+Ibiraci
+Ibiraiaras
+Ibirajuba
+Ibirama
+Ibirapu�
+Ibirapuit�
+Ibirataia
+Ibirit�
+Ibiti�ra
+Ibitiara
+Ibitinga
+Ibitipoca
+Ibitirama
+Ibitit�
+Ibituruna
+Ible�
+Ible�o
+Ibn�ias
+Ibnijas
+Ibotirama
+Ibrahim
+Ibraim
+Ibri
+Ibs�o
+Ibsen
+Ic�dio
+Ic�m
+Ic�lio
+Ic�nio
+Icabode
+Icanor
+Icapu�
+Icara�
+Icara�ma
+Icatu
+Ichiro
+Ichu
+Iconha
+Ictino
+Id�lio
+Idala
+Idalino
+Idbas
+Ideu
+Idiene
+Ieda
+Ielmo
+Iemanj�
+Iep�
+Iezalel
+Ifd�ias
+Ifig�nio
+Ift�
+Igal
+Igapor�
+Igapor�
+Igarapava
+Igarassu
+Igarat�
+Igaratinga
+Igeal
+Igino
+Iglesias
+Ign�cio
+Igor
+Igrapi�na
+Igua�
+Iguaba
+Iguap�
+Iguara�u
+Iguara
+Iguassu
+Iguatama
+Iguatemi
+Iguatu
+Ijaci
+Ije
+Ijom
+Iju�
+Il�dio
+Il�one
+Il�tia
+Il�polis
+Ilana
+Ilce
+IldaO
+Ildebrando
+Ildefonso
+Ilia
+Ilirio
+Ilium
+Ilma
+Ilona
+Ilsa
+Iluminato
+Ilza
+Imaru�
+Imba�
+Imbituva
+Imelda
+In�
+In�cio
+In�s
+Inaciol�ndia
+Inam
+Inand�
+Inara
+Inari
+Inaya
+Incra
+Indaiabira
+Indaial
+Indaiatuba
+Indian�polis
+Indiapor�
+Indiara
+Indiaroba
+Indiava�
+Indira
+Infraero
+Inglaterra
+Ingmar
+Ingomar
+Ingram
+Inhacor�
+Inhambupe
+Inhangapi
+Inhelder
+Inhu�
+Inimutaba
+Inl�
+Inoc�ncio
+Insc.
+Intel
+Interlagos
+Intisar
+Iolanda
+Iomer�
+Ion�
+Iori
+Iorque
+Ip�lito
+Ipa�u
+Ipaba
+Ipameri
+Ipanema
+Ipangua�u
+Ipaporanga
+Ipatinga
+Ipau�u
+Ipaumirim
+Ipaussu
+Ipecaet�
+Iper�
+Ipia�u
+Ipia�
+Ipigu�
+Ipir�
+Ipiranga
+Ipixuna
+Ipojuca
+Ipor�
+Ipor�
+Iporanga
+Ipubi
+Ipui�na
+Ipumirim
+Iqbal
+Iques
+Ira�
+Ira�des
+Iracem�polis
+IracemaO
+Iraci
+Iraj�
+Irajuba
+Iramaia
+Iranduba
+Irapu�
+Irapuan
+Iraquara
+Iraque
+Irati
+Irau�uba
+Irec�
+Iretama
+Irine�polis
+Irineu
+Irirvam
+Irituia
+Irom
+Iroqueses
+Irupi
+Is�crates
+Isa�as
+Isadora
+Isaltina
+Isao
+Isaque
+Isaurinha
+Isbosete
+Iseu
+Isidore
+Isidro
+Isl�ndia
+Isma�as
+Isma
+Ismail
+Ismaquias
+Ismerai
+Isnar
+Isnardo
+Isodose
+Isolda
+Israel�ndia
+Israfil
+IssacarR
+Issias
+Istambul
+Isv�
+Isvi
+It�lia
+It�polis
+Ita�ca
+Ita�
+Itaara
+Itabapoana
+Itabela
+Itaber�
+Itabera�
+Itabi
+ItabiraO
+Itabora�
+Itabuna
+Itacaj�
+Itacambira
+Itacar�
+Itacarambi
+Itacolomi
+Itacurubi
+Itaenga
+Itaet�
+Itagi
+Itagib�
+Itagimirim
+Itagua�u
+Itagua�
+Itaguaj�
+Itaguara
+Itaguari
+Itaguaru
+Itaguatins
+Itai�aba
+Itai�polis
+Itai
+Itain�polis
+Itaip�
+Itaipu
+Itaipul�ndia
+Itaitinga
+Itaituba
+Itaj�
+Itaja�
+Itajobi
+Itaju�pe
+Itaju
+Itajub�
+Italva
+Itamar
+Itamaraju
+Itamarandiba
+Itamaraty
+Itamari
+Itambacuri
+Itambarac�
+Itamogi
+Itamonte
+Itanagra
+Itanh�m
+Itanha�m
+Itanhandu
+Itanhomi
+Itanhy
+Itaobim
+Itaocara
+Itap�
+Itapaci
+Itapag�
+Itapagipe
+Itapebi
+Itapecuru
+Itapejara
+Itapemirim
+Itaperi�
+Itaperu�u
+Itaperuna
+Itapetim
+Itapetinga
+Itapetininga
+Itapevi
+Itapipoca
+Itapira
+Itapirapu�
+Itapiratins
+Itapissuma
+Itapo�
+Itapor�
+Itaporanga
+Itapororoca
+Itapu�
+Itapuca
+Itapura
+Itapuranga
+Itaquaquecetuba
+Itaqui
+Itaquira�
+Itaquitinga
+Itarana
+Itarantim
+Itarema
+Itariri
+Itarum�
+Itatiaia
+Itatiaiu�u
+Itatim
+Itatinga
+Itatira
+Itatuba
+Itau�u
+Itaubal
+Itaueira
+Itaverava
+Iti�ba
+Itidal
+Itiel
+Itinga
+Itiquira
+Itirapina
+Itirapu�
+Itiru�u
+Itla
+Itma
+Itn�
+Itor
+Itre�o
+Itua�u
+Ituber�
+Itueto
+Ituiutaba
+Itumbiara
+Itumirim
+Itupiranga
+Ituporanga
+Iturama
+Itutinga
+Ituverava
+Iucyara
+Iugosl�via
+Iuruara
+Iutaka
+Iv�
+Ivaipor�
+Ivan
+Ivana
+Ivaneide
+Ivani
+Ivanilde
+Ivat�
+Ivatuba
+Ives
+Ivete
+Ivo
+Ivol�ndia
+Ivone
+Ivor�
+Ivoti
+Ixi�ceas
+Izilda
+Izlias
+Izolita
+J�peto
+J�rio
+J�sen
+J�sper
+J�nie
+J�nio
+J�nifer
+J�ssica
+J�
+J�natas
+J�lio
+J�nia
+J�piter
+J.
+JAE
+JECC
+JS
+JSD
+Ja�
+Ja�ba
+Jaac�
+Jaacob�
+Jaal�
+Jaar�
+Jaaresias
+Jaasai
+Jaasiel
+Jaate
+Jaazanias
+Jaazias
+Jaaziel
+Jabal
+Jabim
+Jaboat�o
+Jaboque
+Jabor�
+Jaboti
+Jaboticaba
+Jaboticabal
+Jaboticatubas
+Jabriel
+Jac�
+Jac�
+Jacara�
+Jacaraci
+Jacareacanga
+Jacarepagu�
+Jacarezinho
+Jacarta
+Jacayru
+Jaciara
+Jaciema
+Jaciendi
+Jacilei
+Jacimar
+JacintaO
+JacirR
+Jackson
+Jacobi
+Jacobsen
+Jacqueline
+Jacques
+Jacu�pe
+Jacuizinho
+Jacupiranga
+Jacuri
+Jadai
+Jadiel
+Jadson
+Jael
+Jaer�
+Jaf�
+Jafa
+Jafar
+Jafia
+Jaflete
+Jafleti
+Jaguapit�
+Jaguaquara
+Jaguara�u
+Jaguarari
+Jaguaretama
+Jaguari�na
+Jaguari
+Jaguaribara
+Jaguaribe
+Jailson
+Jaime
+Jair
+Jairo
+Jamai
+Jamal
+James
+Jamie
+Jamil
+Jamile
+Jamim
+Jampruca
+Jandineia
+Jandira
+Janete
+Jani�polis
+Jani
+Janice
+Janim
+Janine
+Janir
+Janitra
+Janleque
+Janoa
+Japara�ba
+Japaratinga
+Japaratuba
+Japeri
+Japoat�
+Japonvar
+Japor�
+Jaqueline
+Jaquim
+Jaquirana
+Jaraguari
+Jarbas
+Jarcom
+Jardel
+Jardin�polis
+Jarebe
+Jarete
+Jargal
+Jari
+Jaribe
+Jarinu
+Jarir
+Jarmute
+Jaroa
+Jarvis
+Jas�o
+Jasa
+Jase�as
+Jasmine
+Jasobe�o
+Jasom
+Jason
+Jataizinho
+Jate�
+Jater
+Jatir
+Jatniel
+Jaul
+Jaun
+Jaupaci
+Jauru
+Jav�
+Javier
+Jawa
+Je�
+Je�de
+Je�s
+Jeatarai
+Jeaziel
+Jeberequias
+Jecame�o
+Jecamias
+Jeceaba
+Jecolia
+Jeconias
+Jecutiel
+Jeda�as
+Jeosaf�
+Jequi�
+Jequitinhonha
+Jer�
+Jerede
+Jeremai
+Jeremote
+Jericoacoara
+Jeriel
+Jerimote
+Jeriote
+Jeriquara
+Jero�o
+Jerobo�o
+Jerome
+Jeronimo
+Jes�polis
+Jesa�as
+Jesana
+Jesarela
+Jesebeabe
+Jesoa�as
+Jesu�
+Jesu�nia
+Jesu�no
+Jesualdo
+Jesurum
+Jeter
+Jetete
+Jetro
+Jeub�
+Jezabel
+Jezanias
+Jezer
+Jezias
+Jeziel
+Jezra�as
+Jezreel
+Jibril
+Jibuti
+Jilan
+Jim
+Jino
+Jiquiri��
+Jiro
+Jisbaque
+Jita�na
+Jizar
+Jo�
+Jo�s
+Joa�aba
+Joa�ma
+Joabe
+Joacaz
+Joaci
+Joad�
+Joaldo
+Joan�
+Joan�polis
+Joanesburgo
+Joanides
+Joaquim
+Joat�o
+Jobabe
+Jobim
+Joca
+Jocasta
+Jocde�o
+Jocelim
+Joceline
+Jocme�o
+Jocne�o
+Jocs�
+Joct�
+Jod�
+Jodie
+Joede
+Joel
+Joela
+Joelma
+Joelmir
+Joerama
+Joice
+Joinville
+Jon�
+Jonadabe
+Jonat�
+Jonival
+Jope
+Joquebede
+Jor�o
+Jord�o
+Jorque�o
+Jos�
+Josaf�
+Josavias
+Josbecasa
+Joseane
+Josefo
+Josel�ndia
+Joseline
+Joselito
+Joselma
+Josemar
+Josen�polis
+Josias
+Josibias
+Josie
+Josifias
+Josilene
+Josu�
+Josualdo
+Jot�o
+Jotb�
+Jotbat�
+Jotniano
+Joudiner
+Jovi�nia
+Jovino
+Jovito
+Jr.
+Ju�na
+Juacema
+Juara
+Juarez
+Juarina
+Juatuba
+Jubal
+Juca
+Jucal
+Jucati
+Jucilene
+Jucuru�u
+Jud�
+Judeia
+Jugosl�via
+Julian
+Juliane
+Julieta
+Julinho
+Julita
+Julius
+June
+Juninho
+Junior
+Juno
+Junqueir�polis
+Jupercio
+Jupi
+Juquinha
+Juquitiba
+Jur�ia
+Juracema
+Juraci
+Jurandir
+Jurdelina
+Jurecema
+Jurer�
+Jurides
+Juripari
+Juripiranga
+Juru�
+Juruaia
+Jurubatuba
+Juruena
+Jusabe
+Juscelino
+Juscimeira
+Jussara
+Jussari
+Jussiape
+Justine
+Justino
+Jut�
+Juti
+Juventus
+K�lia
+K�nia
+K.
+KGB
+Kabir
+Kadar
+Kadu
+KalilQ
+Kalina
+Kalo
+Kalor�
+Kaluan�
+Kamada
+Kamaitior�
+Kamal
+Kamaria
+Kame
+Kamei
+Kampala
+Kan�
+Kanapina
+Kansas
+Kapipa
+Kardal
+Karida
+Karoline
+Kartane
+Kate
+Katia
+Kazim
+KcalRV
+Kelda
+Kentaro
+Kerina
+Kiliano
+Kim
+King
+Kioto
+Klaus
+Kleber
+L�brea
+L�ia
+L�lio
+L�lis
+L�o
+L�rio
+L�nis
+L�dice
+L�lia
+L�vio
+L�ide
+L
+L.
+LBA
+LDL
+LICC
+LII
+LIII
+LISP
+LIV
+LIX
+LNEC
+LP
+LTC
+LV
+LVI
+LVII
+LVIII
+LX
+LXI
+LXII
+LXIII
+LXIV
+LXIX
+LXV
+LXVI
+LXVII
+LXVIII
+LXX
+LXXI
+LXXII
+LXXIII
+LXXIV
+LXXIX
+LXXV
+LXXVI
+LXXVII
+LXXVIII
+LXXX
+LXXXI
+LXXXII
+LXXXIII
+LXXXIV
+LXXXIX
+LXXXV
+LXXXVI
+LXXXVII
+LXXXVIII
+La�rcio
+La�s
+La�sa
+Laam�s
+Lab�
+Lab�rio
+Labma
+Lacerd�polis
+Lacerda
+Ladiniano
+LaerteP
+Lafaiete
+Lafite
+Lafontaine
+Lageado
+Lagonegro
+Lagrange
+Laila
+Laio
+Lajed�o
+Lamar
+Lamartine
+Landerico
+Landolfo
+Landulfo
+Laod�mia
+Laodic�ia
+Lara
+Larissa
+Larrosa
+Lat�ncio
+Latari�ceas
+Latuc�ceas
+Laud�lio
+Laudelino
+Laudemir
+Laudemiro
+Laudicena
+Laureano
+Laurence
+Lauriano
+Laurindo
+Laurinha
+Le�polis
+Le�ncio
+Le�nidas
+Lebana
+Leblon
+Leci
+Lediano
+Leide
+Leilane
+Lemuel
+Lenemar
+Lenine
+Leninegrado
+Lenita
+Leoberto
+Leocrates
+Leodomir
+Leomil
+Leomir
+Leonardo
+Leonel
+Leonilda
+Leonor
+Leonorzinha
+Leopoldo
+Leroi
+Les�m
+Lib�rio
+Liberato
+Lic�rio
+Lica�nia
+Lidian�polis
+Lidiane
+Ligurgo
+Liliam
+Lilian
+Liliane
+Lind�ia
+Lindalva
+Lindolfo
+Lineu
+Lins
+Linus
+Linux
+Lionel
+Lirio
+Lisabete
+Lisana
+Lisandro
+Lisboazinha
+Loanda
+Lodovico
+Lola
+Lolita
+Lomanto
+Lombard
+Lombardia
+Londres
+Lorenzo
+Loreto
+Louise
+Lourdes
+Louredo
+Lourival
+Lourivaldo
+Lourosa
+Louvre
+Ltda.
+Lu�sa
+Lu�z
+Luc�lio
+Luc�dio
+Luc�lio
+Luci�ra
+Luci
+Lucian�polis
+Luciane
+Luciano
+Lucidoro
+Luciene
+Lucinda
+Lucr�ia
+Ludicea
+Ludim
+Ludolfo
+Ludovico
+Luduvice
+Luigi
+Luisburgo
+Luisinha
+Luisl�ndia
+LuizOV
+Luiza
+Luizi�nia
+Luiziana
+Luma
+Lumen
+Lumi�re
+Lup�rcio
+Lupic�nio
+Lupion�polis
+Lurdes
+Lusia
+Lustosa
+Lutero
+Luxemburgo
+Luyse
+Luzardo
+Luzi�nia
+Luzil�ndia
+Luzin�polis
+Luzinete
+Luzit�nia
+M�rio
+M�rjore
+M�ncio
+M�ntua
+M�dici
+M�rcurio
+M�rida
+M�rtola
+M�da
+M�nfis
+M�ria
+M�riam
+M�lidas
+M�s
+M�naco
+M�cio
+M�rcia
+M
+M.
+MC
+MCC
+MCCC
+MCCCI
+MCCCII
+MCCCIII
+MCCCIV
+MCCCIX
+MCCCL
+MCCCLI
+MCCCLII
+MCCCLIII
+MCCCLIV
+MCCCLIX
+MCCCLV
+MCCCLVI
+MCCCLVII
+MCCCLVIII
+MCCCLX
+MCCCLXI
+MCCCLXII
+MCCCLXIII
+MCCCLXIV
+MCCCLXIX
+MCCCLXV
+MCCCLXVI
+MCCCLXVII
+MCCCLXVIII
+MCCCLXX
+MCCCLXXI
+MCCCLXXII
+MCCCLXXIII
+MCCCLXXIV
+MCCCLXXIX
+MCCCLXXV
+MCCCLXXVI
+MCCCLXXVII
+MCCCLXXVIII
+MCCCLXXX
+MCCCLXXXI
+MCCCLXXXII
+MCCCLXXXIII
+MCCCLXXXIV
+MCCCLXXXIX
+MCCCLXXXV
+MCCCLXXXVI
+MCCCLXXXVII
+MCCCLXXXVIII
+MCCCV
+MCCCVI
+MCCCVII
+MCCCVIII
+MCCCX
+MCCCXC
+MCCCXCI
+MCCCXCII
+MCCCXCIII
+MCCCXCIV
+MCCCXCIX
+MCCCXCV
+MCCCXCVI
+MCCCXCVII
+MCCCXCVIII
+MCCCXI
+MCCCXII
+MCCCXIII
+MCCCXIV
+MCCCXIX
+MCCCXL
+MCCCXLI
+MCCCXLII
+MCCCXLIII
+MCCCXLIV
+MCCCXLIX
+MCCCXLV
+MCCCXLVI
+MCCCXLVII
+MCCCXLVIII
+MCCCXV
+MCCCXVI
+MCCCXVII
+MCCCXVIII
+MCCCXX
+MCCCXXI
+MCCCXXII
+MCCCXXIII
+MCCCXXIV
+MCCCXXIX
+MCCCXXV
+MCCCXXVI
+MCCCXXVII
+MCCCXXVIII
+MCCCXXX
+MCCCXXXI
+MCCCXXXII
+MCCCXXXIII
+MCCCXXXIV
+MCCCXXXIX
+MCCCXXXV
+MCCCXXXVI
+MCCCXXXVII
+MCCCXXXVIII
+MCCI
+MCCII
+MCCIII
+MCCIV
+MCCIX
+MCCL
+MCCLI
+MCCLII
+MCCLIII
+MCCLIV
+MCCLIX
+MCCLV
+MCCLVI
+MCCLVII
+MCCLVIII
+MCCLX
+MCCLXI
+MCCLXII
+MCCLXIII
+MCCLXIV
+MCCLXIX
+MCCLXV
+MCCLXVI
+MCCLXVII
+MCCLXVIII
+MCCLXX
+MCCLXXI
+MCCLXXII
+MCCLXXIII
+MCCLXXIV
+MCCLXXIX
+MCCLXXV
+MCCLXXVI
+MCCLXXVII
+MCCLXXVIII
+MCCLXXX
+MCCLXXXI
+MCCLXXXII
+MCCLXXXIII
+MCCLXXXIV
+MCCLXXXIX
+MCCLXXXV
+MCCLXXXVI
+MCCLXXXVII
+MCCLXXXVIII
+MCCV
+MCCVI
+MCCVII
+MCCVIII
+MCCX
+MCCXC
+MCCXCI
+MCCXCII
+MCCXCIII
+MCCXCIV
+MCCXCIX
+MCCXCV
+MCCXCVI
+MCCXCVII
+MCCXCVIII
+MCCXI
+MCCXII
+MCCXIII
+MCCXIV
+MCCXIX
+MCCXL
+MCCXLI
+MCCXLII
+MCCXLIII
+MCCXLIV
+MCCXLIX
+MCCXLV
+MCCXLVI
+MCCXLVII
+MCCXLVIII
+MCCXV
+MCCXVI
+MCCXVII
+MCCXVIII
+MCCXX
+MCCXXI
+MCCXXII
+MCCXXIII
+MCCXXIV
+MCCXXIX
+MCCXXV
+MCCXXVI
+MCCXXVII
+MCCXXVIII
+MCCXXX
+MCCXXXI
+MCCXXXII
+MCCXXXIII
+MCCXXXIV
+MCCXXXIX
+MCCXXXV
+MCCXXXVI
+MCCXXXVII
+MCCXXXVIII
+MCD
+MCDI
+MCDII
+MCDIII
+MCDIV
+MCDIX
+MCDL
+MCDLI
+MCDLII
+MCDLIII
+MCDLIV
+MCDLIX
+MCDLV
+MCDLVI
+MCDLVII
+MCDLVIII
+MCDLX
+MCDLXI
+MCDLXII
+MCDLXIII
+MCDLXIV
+MCDLXIX
+MCDLXV
+MCDLXVI
+MCDLXVII
+MCDLXVIII
+MCDLXX
+MCDLXXI
+MCDLXXII
+MCDLXXIII
+MCDLXXIV
+MCDLXXIX
+MCDLXXV
+MCDLXXVI
+MCDLXXVII
+MCDLXXVIII
+MCDLXXX
+MCDLXXXI
+MCDLXXXII
+MCDLXXXIII
+MCDLXXXIV
+MCDLXXXIX
+MCDLXXXV
+MCDLXXXVI
+MCDLXXXVII
+MCDLXXXVIII
+MCDV
+MCDVI
+MCDVII
+MCDVIII
+MCDX
+MCDXC
+MCDXCI
+MCDXCII
+MCDXCIII
+MCDXCIV
+MCDXCIX
+MCDXCV
+MCDXCVI
+MCDXCVII
+MCDXCVIII
+MCDXI
+MCDXII
+MCDXIII
+MCDXIV
+MCDXIX
+MCDXL
+MCDXLI
+MCDXLII
+MCDXLIII
+MCDXLIV
+MCDXLIX
+MCDXLV
+MCDXLVI
+MCDXLVII
+MCDXLVIII
+MCDXV
+MCDXVI
+MCDXVII
+MCDXVIII
+MCDXX
+MCDXXI
+MCDXXII
+MCDXXIII
+MCDXXIV
+MCDXXIX
+MCDXXV
+MCDXXVI
+MCDXXVII
+MCDXXVIII
+MCDXXX
+MCDXXXI
+MCDXXXII
+MCDXXXIII
+MCDXXXIV
+MCDXXXIX
+MCDXXXV
+MCDXXXVI
+MCDXXXVII
+MCDXXXVIII
+MCI
+MCII
+MCIII
+MCIV
+MCIX
+MCL
+MCLI
+MCLII
+MCLIII
+MCLIV
+MCLIX
+MCLV
+MCLVI
+MCLVII
+MCLVIII
+MCLX
+MCLXI
+MCLXII
+MCLXIII
+MCLXIV
+MCLXIX
+MCLXV
+MCLXVI
+MCLXVII
+MCLXVIII
+MCLXX
+MCLXXI
+MCLXXII
+MCLXXIII
+MCLXXIV
+MCLXXIX
+MCLXXV
+MCLXXVI
+MCLXXVII
+MCLXXVIII
+MCLXXX
+MCLXXXI
+MCLXXXII
+MCLXXXIII
+MCLXXXIV
+MCLXXXIX
+MCLXXXV
+MCLXXXVI
+MCLXXXVII
+MCLXXXVIII
+MCM
+MCMI
+MCMII
+MCMIII
+MCMIV
+MCMIX
+MCML
+MCMLI
+MCMLII
+MCMLIII
+MCMLIV
+MCMLIX
+MCMLV
+MCMLVI
+MCMLVII
+MCMLVIII
+MCMLX
+MCMLXI
+MCMLXII
+MCMLXIII
+MCMLXIV
+MCMLXIX
+MCMLXV
+MCMLXVI
+MCMLXVII
+MCMLXVIII
+MCMLXX
+MCMLXXI
+MCMLXXII
+MCMLXXIII
+MCMLXXIV
+MCMLXXIX
+MCMLXXV
+MCMLXXVI
+MCMLXXVII
+MCMLXXVIII
+MCMLXXX
+MCMLXXXI
+MCMLXXXII
+MCMLXXXIII
+MCMLXXXIV
+MCMLXXXIX
+MCMLXXXV
+MCMLXXXVI
+MCMLXXXVII
+MCMLXXXVIII
+MCMV
+MCMVI
+MCMVII
+MCMVIII
+MCMX
+MCMXC
+MCMXCI
+MCMXCII
+MCMXCIII
+MCMXCIV
+MCMXCIX
+MCMXCV
+MCMXCVI
+MCMXCVII
+MCMXCVIII
+MCMXI
+MCMXII
+MCMXIII
+MCMXIV
+MCMXIX
+MCMXL
+MCMXLI
+MCMXLII
+MCMXLIII
+MCMXLIV
+MCMXLIX
+MCMXLV
+MCMXLVI
+MCMXLVII
+MCMXLVIII
+MCMXV
+MCMXVI
+MCMXVII
+MCMXVIII
+MCMXX
+MCMXXI
+MCMXXII
+MCMXXIII
+MCMXXIV
+MCMXXIX
+MCMXXV
+MCMXXVI
+MCMXXVII
+MCMXXVIII
+MCMXXX
+MCMXXXI
+MCMXXXII
+MCMXXXIII
+MCMXXXIV
+MCMXXXIX
+MCMXXXV
+MCMXXXVI
+MCMXXXVII
+MCMXXXVIII
+MCV
+MCVI
+MCVII
+MCVIII
+MCX
+MCXC
+MCXCI
+MCXCII
+MCXCIII
+MCXCIV
+MCXCIX
+MCXCV
+MCXCVI
+MCXCVII
+MCXCVIII
+MCXI
+MCXII
+MCXIII
+MCXIV
+MCXIX
+MCXL
+MCXLI
+MCXLII
+MCXLIII
+MCXLIV
+MCXLIX
+MCXLV
+MCXLVI
+MCXLVII
+MCXLVIII
+MCXV
+MCXVI
+MCXVII
+MCXVIII
+MCXX
+MCXXI
+MCXXII
+MCXXIII
+MCXXIV
+MCXXIX
+MCXXV
+MCXXVI
+MCXXVII
+MCXXVIII
+MCXXX
+MCXXXI
+MCXXXII
+MCXXXIII
+MCXXXIV
+MCXXXIX
+MCXXXV
+MCXXXVI
+MCXXXVII
+MCXXXVIII
+MD
+MDC
+MDCC
+MDCCC
+MDCCCI
+MDCCCII
+MDCCCIII
+MDCCCIV
+MDCCCIX
+MDCCCL
+MDCCCLI
+MDCCCLII
+MDCCCLIII
+MDCCCLIV
+MDCCCLIX
+MDCCCLV
+MDCCCLVI
+MDCCCLVII
+MDCCCLVIII
+MDCCCLX
+MDCCCLXI
+MDCCCLXII
+MDCCCLXIII
+MDCCCLXIV
+MDCCCLXIX
+MDCCCLXV
+MDCCCLXVI
+MDCCCLXVII
+MDCCCLXVIII
+MDCCCLXX
+MDCCCLXXI
+MDCCCLXXII
+MDCCCLXXIII
+MDCCCLXXIV
+MDCCCLXXIX
+MDCCCLXXV
+MDCCCLXXVI
+MDCCCLXXVII
+MDCCCLXXVIII
+MDCCCLXXX
+MDCCCLXXXI
+MDCCCLXXXII
+MDCCCLXXXIII
+MDCCCLXXXIV
+MDCCCLXXXIX
+MDCCCLXXXV
+MDCCCLXXXVI
+MDCCCLXXXVII
+MDCCCLXXXVIII
+MDCCCV
+MDCCCVI
+MDCCCVII
+MDCCCVIII
+MDCCCX
+MDCCCXC
+MDCCCXCI
+MDCCCXCII
+MDCCCXCIII
+MDCCCXCIV
+MDCCCXCIX
+MDCCCXCV
+MDCCCXCVI
+MDCCCXCVII
+MDCCCXCVIII
+MDCCCXI
+MDCCCXII
+MDCCCXIII
+MDCCCXIV
+MDCCCXIX
+MDCCCXL
+MDCCCXLI
+MDCCCXLII
+MDCCCXLIII
+MDCCCXLIV
+MDCCCXLIX
+MDCCCXLV
+MDCCCXLVI
+MDCCCXLVII
+MDCCCXLVIII
+MDCCCXV
+MDCCCXVI
+MDCCCXVII
+MDCCCXVIII
+MDCCCXX
+MDCCCXXI
+MDCCCXXII
+MDCCCXXIII
+MDCCCXXIV
+MDCCCXXIX
+MDCCCXXV
+MDCCCXXVI
+MDCCCXXVII
+MDCCCXXVIII
+MDCCCXXX
+MDCCCXXXI
+MDCCCXXXII
+MDCCCXXXIII
+MDCCCXXXIV
+MDCCCXXXIX
+MDCCCXXXV
+MDCCCXXXVI
+MDCCCXXXVII
+MDCCCXXXVIII
+MDCCI
+MDCCII
+MDCCIII
+MDCCIV
+MDCCIX
+MDCCL
+MDCCLI
+MDCCLII
+MDCCLIII
+MDCCLIV
+MDCCLIX
+MDCCLV
+MDCCLVI
+MDCCLVII
+MDCCLVIII
+MDCCLX
+MDCCLXI
+MDCCLXII
+MDCCLXIII
+MDCCLXIV
+MDCCLXIX
+MDCCLXV
+MDCCLXVI
+MDCCLXVII
+MDCCLXVIII
+MDCCLXX
+MDCCLXXI
+MDCCLXXII
+MDCCLXXIII
+MDCCLXXIV
+MDCCLXXIX
+MDCCLXXV
+MDCCLXXVI
+MDCCLXXVII
+MDCCLXXVIII
+MDCCLXXX
+MDCCLXXXI
+MDCCLXXXII
+MDCCLXXXIII
+MDCCLXXXIV
+MDCCLXXXIX
+MDCCLXXXV
+MDCCLXXXVI
+MDCCLXXXVII
+MDCCLXXXVIII
+MDCCV
+MDCCVI
+MDCCVII
+MDCCVIII
+MDCCX
+MDCCXC
+MDCCXCI
+MDCCXCII
+MDCCXCIII
+MDCCXCIV
+MDCCXCIX
+MDCCXCV
+MDCCXCVI
+MDCCXCVII
+MDCCXCVIII
+MDCCXI
+MDCCXII
+MDCCXIII
+MDCCXIV
+MDCCXIX
+MDCCXL
+MDCCXLI
+MDCCXLII
+MDCCXLIII
+MDCCXLIV
+MDCCXLIX
+MDCCXLV
+MDCCXLVI
+MDCCXLVII
+MDCCXLVIII
+MDCCXV
+MDCCXVI
+MDCCXVII
+MDCCXVIII
+MDCCXX
+MDCCXXI
+MDCCXXII
+MDCCXXIII
+MDCCXXIV
+MDCCXXIX
+MDCCXXV
+MDCCXXVI
+MDCCXXVII
+MDCCXXVIII
+MDCCXXX
+MDCCXXXI
+MDCCXXXII
+MDCCXXXIII
+MDCCXXXIV
+MDCCXXXIX
+MDCCXXXV
+MDCCXXXVI
+MDCCXXXVII
+MDCCXXXVIII
+MDCI
+MDCII
+MDCIII
+MDCIV
+MDCIX
+MDCL
+MDCLI
+MDCLII
+MDCLIII
+MDCLIV
+MDCLIX
+MDCLV
+MDCLVI
+MDCLVII
+MDCLVIII
+MDCLX
+MDCLXI
+MDCLXII
+MDCLXIII
+MDCLXIV
+MDCLXIX
+MDCLXV
+MDCLXVI
+MDCLXVII
+MDCLXVIII
+MDCLXX
+MDCLXXI
+MDCLXXII
+MDCLXXIII
+MDCLXXIV
+MDCLXXIX
+MDCLXXV
+MDCLXXVI
+MDCLXXVII
+MDCLXXVIII
+MDCLXXX
+MDCLXXXI
+MDCLXXXII
+MDCLXXXIII
+MDCLXXXIV
+MDCLXXXIX
+MDCLXXXV
+MDCLXXXVI
+MDCLXXXVII
+MDCLXXXVIII
+MDCV
+MDCVI
+MDCVII
+MDCVIII
+MDCX
+MDCXC
+MDCXCI
+MDCXCII
+MDCXCIII
+MDCXCIV
+MDCXCIX
+MDCXCV
+MDCXCVI
+MDCXCVII
+MDCXCVIII
+MDCXI
+MDCXII
+MDCXIII
+MDCXIV
+MDCXIX
+MDCXL
+MDCXLI
+MDCXLII
+MDCXLIII
+MDCXLIV
+MDCXLIX
+MDCXLV
+MDCXLVI
+MDCXLVII
+MDCXLVIII
+MDCXV
+MDCXVI
+MDCXVII
+MDCXVIII
+MDCXX
+MDCXXI
+MDCXXII
+MDCXXIII
+MDCXXIV
+MDCXXIX
+MDCXXV
+MDCXXVI
+MDCXXVII
+MDCXXVIII
+MDCXXX
+MDCXXXI
+MDCXXXII
+MDCXXXIII
+MDCXXXIV
+MDCXXXIX
+MDCXXXV
+MDCXXXVI
+MDCXXXVII
+MDCXXXVIII
+MDI
+MDII
+MDIII
+MDIV
+MDIX
+MDL
+MDLI
+MDLII
+MDLIII
+MDLIV
+MDLIX
+MDLV
+MDLVI
+MDLVII
+MDLVIII
+MDLX
+MDLXI
+MDLXII
+MDLXIII
+MDLXIV
+MDLXIX
+MDLXV
+MDLXVI
+MDLXVII
+MDLXVIII
+MDLXX
+MDLXXI
+MDLXXII
+MDLXXIII
+MDLXXIV
+MDLXXIX
+MDLXXV
+MDLXXVI
+MDLXXVII
+MDLXXVIII
+MDLXXX
+MDLXXXI
+MDLXXXII
+MDLXXXIII
+MDLXXXIV
+MDLXXXIX
+MDLXXXV
+MDLXXXVI
+MDLXXXVII
+MDLXXXVIII
+MDV
+MDVI
+MDVII
+MDVIII
+MDX
+MDXC
+MDXCI
+MDXCII
+MDXCIII
+MDXCIV
+MDXCIX
+MDXCV
+MDXCVI
+MDXCVII
+MDXCVIII
+MDXI
+MDXII
+MDXIII
+MDXIV
+MDXIX
+MDXL
+MDXLI
+MDXLII
+MDXLIII
+MDXLIV
+MDXLIX
+MDXLV
+MDXLVI
+MDXLVII
+MDXLVIII
+MDXV
+MDXVI
+MDXVII
+MDXVIII
+MDXX
+MDXXI
+MDXXII
+MDXXIII
+MDXXIV
+MDXXIX
+MDXXV
+MDXXVI
+MDXXVII
+MDXXVIII
+MDXXX
+MDXXXI
+MDXXXII
+MDXXXIII
+MDXXXIV
+MDXXXIX
+MDXXXV
+MDXXXVI
+MDXXXVII
+MDXXXVIII
+MF
+MII
+MIII
+MIV
+MIX
+MLI
+MLII
+MLIII
+MLIV
+MLIX
+MLV
+MLVI
+MLVII
+MLVIII
+MLX
+MLXI
+MLXII
+MLXIII
+MLXIV
+MLXIX
+MLXV
+MLXVI
+MLXVII
+MLXVIII
+MLXX
+MLXXI
+MLXXII
+MLXXIII
+MLXXIV
+MLXXIX
+MLXXV
+MLXXVI
+MLXXVII
+MLXXVIII
+MLXXX
+MLXXXI
+MLXXXII
+MLXXXIII
+MLXXXIV
+MLXXXIX
+MLXXXV
+MLXXXVI
+MLXXXVII
+MLXXXVIII
+MM.
+MMC
+MMI
+MMII
+MMIII
+MMIV
+MMIX
+MML
+MMLI
+MMLII
+MMLIII
+MMLIV
+MMLIX
+MMLV
+MMLVI
+MMLVII
+MMLVIII
+MMLX
+MMLXI
+MMLXII
+MMLXIII
+MMLXIV
+MMLXIX
+MMLXV
+MMLXVI
+MMLXVII
+MMLXVIII
+MMLXX
+MMLXXI
+MMLXXII
+MMLXXIII
+MMLXXIV
+MMLXXIX
+MMLXXV
+MMLXXVI
+MMLXXVII
+MMLXXVIII
+MMLXXX
+MMLXXXI
+MMLXXXII
+MMLXXXIII
+MMLXXXIV
+MMLXXXIX
+MMLXXXV
+MMLXXXVI
+MMLXXXVII
+MMLXXXVIII
+MMR
+MMV
+MMVI
+MMVII
+MMVIII
+MMX
+MMXC
+MMXCI
+MMXCII
+MMXCIII
+MMXCIV
+MMXCIX
+MMXCV
+MMXCVI
+MMXCVII
+MMXCVIII
+MMXI
+MMXII
+MMXIII
+MMXIV
+MMXIX
+MMXL
+MMXLI
+MMXLII
+MMXLIII
+MMXLIV
+MMXLIX
+MMXLV
+MMXLVI
+MMXLVII
+MMXLVIII
+MMXV
+MMXVI
+MMXVII
+MMXVIII
+MMXX
+MMXXI
+MMXXII
+MMXXIII
+MMXXIV
+MMXXIX
+MMXXV
+MMXXVI
+MMXXVII
+MMXXVIII
+MMXXX
+MMXXXI
+MMXXXII
+MMXXXIII
+MMXXXIV
+MMXXXIX
+MMXXXV
+MMXXXVI
+MMXXXVII
+MMXXXVIII
+MP
+MPLA
+MRPP
+MSH
+MST
+MT
+MV
+MVI
+MVII
+MVIII
+MX
+MXC
+MXCI
+MXCII
+MXCIII
+MXCIV
+MXCIX
+MXCV
+MXCVI
+MXCVII
+MXCVIII
+MXI
+MXII
+MXIII
+MXIV
+MXIX
+MXL
+MXLI
+MXLII
+MXLIII
+MXLIV
+MXLIX
+MXLV
+MXLVI
+MXLVII
+MXLVIII
+MXV
+MXVI
+MXVII
+MXVIII
+MXX
+MXXI
+MXXII
+MXXIII
+MXXIV
+MXXIX
+MXXV
+MXXVI
+MXXVII
+MXXVIII
+MXXX
+MXXXI
+MXXXII
+MXXXIII
+MXXXIV
+MXXXIX
+MXXXV
+MXXXVI
+MXXXVII
+MXXXVIII
+Ma�ambara
+Ma�ra
+Ma�sa
+Mabea
+Mabel
+Maca�na
+Macabu
+Macap�
+Macaparana
+Macarani
+Macatuba
+Macaubal
+Macaz
+Macbanai
+Macbena
+Macedina
+Machiavel
+Maciel
+Macurur�
+Madeleine
+Madeline
+Madmena
+Madom
+Madrep�ridas
+Madri
+Madrid
+Madson
+Maetinga
+MafaldaO
+Mag�
+Magad�
+Magalh�es
+Magali
+Magdala
+Magdalene
+Magdeburgo
+Magdiel
+Magnum
+Mai.
+Maica
+Maida
+Maim
+Maiote
+Maiquinique
+Mait�
+Mal�vi
+Mal�
+Mal�
+Malaquias
+Malau�
+Malco
+Malcolm
+Maliha
+Malquir�o
+Mamede
+Mamor�
+Mampituba
+Man�gua
+Mana�m
+Mana�ra
+Manacapuru
+Manacorda
+Manaibar�
+Manal
+Manama
+Manaquiri
+Manari
+Manass�s
+Manchester
+Mancini
+Mandagua�u
+Mandanela
+Mandela
+Mandirituba
+Mandrado
+Manfredo
+Manfrin�polis
+Mangaratiba
+Manh�es
+Manhua�u
+Manhumirim
+Manicor�
+Mano�
+Manoel
+Manoela
+Manoelina
+Manrico
+Manten�polis
+Manteninha
+Mantus
+Manu�no
+Manualdo
+ManuelaO
+Manzano
+Manzuma
+Maom�
+Maom
+Maoque
+Maputo
+Maqued�
+Maqueda
+Maquelote
+Maquiavel
+Maquir
+Mar�al
+Mar�lia
+Mar�sia
+Mara�
+Mara�
+Maraca�um�
+Maraca�
+Maracajara
+Maracaju
+Maracana�
+Maragogi
+Maraial
+Maral�
+Maraneyma
+Maranguape
+Marapanim
+Marapendi
+Marapoama
+Marat�
+Marata�zes
+Marc�lio
+Marcabote
+Marcacini
+Marcel�ndia
+Marcel
+Marcelo
+Marcinha
+Marcion�lio
+Marcionilo
+Marcol�ndia
+Marcola
+Marcolino
+Marcondes
+Marcus
+Marcuse
+Mardecerva
+Mardoqueu
+Marduque
+Marg�o
+Marg�
+Margarete
+Margarido
+Margerie
+Mari�polis
+Mari�polis
+Mariabela
+Mariam
+Marian�polis
+Mariane
+Mariang�lica
+Mariazinha
+Maridel
+Marie
+Mariel
+Marieli
+Marielsa
+Marieta
+Maril�ndia
+Marilda
+Marilene
+Marilisa
+Marilu
+Marilze
+Marin�polis
+Maringoni
+Mario
+Marise
+Marissa
+Maristela
+Marituba
+Marivaldo
+Mariz�polis
+Mariz
+Marjani
+Marjorie
+Marla
+Marlene
+Marli�ria
+Marli
+Marlon
+Marlova
+Marluce
+Marlus
+Marly
+Marmel�polis
+Marote
+Mars�lio
+Marselha
+Mart�nez
+Martin�pole
+Martin�polis
+Martina
+Martinez
+Marucia
+Maruxa
+Marv�o
+Marvel
+Marx
+Marzag�o
+Masako
+Masal
+Masaru
+Maseru
+Massachusetts
+Massalino
+Massao
+Massaranduba
+Massarelos
+Massimo
+Mastod�ntidas
+Masumi
+Matan�
+Matanias
+Matapo�
+Mataraca
+Matarazzo
+Mataripe
+Matat�
+Matatas
+Matatias
+Matel�ndia
+Matenai
+Materl�ndia
+Matilde
+Matip�
+Matitias
+Matur�ia
+Mau�
+Mauar�
+Maui
+Maur�cio
+Maur�lio
+Maurer
+Mauric�a
+Maurice
+Maurici
+Mauril�ndia
+Mauriti
+Maviael
+Mavilde
+Mavino
+Max
+Maximiano
+Maximiniano
+Maximino
+Maxine
+Mayer
+Maynard
+Mazag�o
+Mazzaroto
+Mbaeupeguara
+Mbarajara
+Mcklim
+Mecejana
+Mecona
+Med�
+Med�ia
+Medade
+Medauar
+Medea
+Medeba
+Medicil�ndia
+Mefibosete
+Megan
+Megido
+Meguido
+Meire
+Meireles
+Melatias
+Mele�
+Meleque
+Melila
+Melinde
+Melipona
+Melisso
+Melit�o
+Melqui
+Melquiades
+Melquias
+Melquior
+Melquisedeque
+Melvino
+Membrosa
+Memon�
+Men�s
+Men�dios
+Menacela
+Menadel
+Menandro
+Menardo
+Mendel
+Mendelson
+Mendez
+Mendon�a
+Menezes
+Menipo
+Meol�
+Meom
+Meonenim
+Meonotai
+Mer�pe
+Mercedes
+Mercosul
+Meredite
+Meremote
+Meribe
+Merodaque
+Meruoca
+Mes�polis
+Mesaque
+Meselemias
+Meseque
+Mesilemite
+Mesilemote
+Mesobabe
+Messina
+Mesul�o
+Mesulemete
+Metegue
+Meunim
+Meyer
+Miaral�
+Miarar�
+MicaelRO
+Miceli
+MichaelRO
+Michel
+Michele
+Micheline
+Michigan
+Michiko
+Michio
+Miclote
+Micn�ias
+Micobacterium
+Midi�
+Midim
+Midori
+Miglioransa
+Miguel�polis
+Miguelinho
+Mihael
+Mike
+Milane
+Milc�ades
+Milca
+Milene
+Mileto
+Milit�o
+Militino
+Milton
+Mimen�
+Mina�u
+Mindelo
+Minervino
+Minho
+Minite
+Minnesota
+Minoru
+Minosso
+Mipibu
+Miqu�as
+Miqu�ias
+Miquelon
+Miquerinos
+Mira�
+Mira�ma
+Mira�ra
+MirabelQ
+Miracatu
+Miragua�
+Mirand�polis
+MirandaO
+Mirandela
+Mirandiba
+Mirangaba
+Miranorte
+Miraselva
+Mirassol�ndia
+Mirassol
+Mirav�nia
+Mircia
+Mirela
+Mirma
+Mirna
+Mirtes
+Mis�
+Misael
+Misal
+Misgabe
+Misma
+Mismana
+Misp�
+Mispate
+Misperete
+Misrefote
+Mizael
+Mnem�sine
+Mo�ca
+Moabe
+Moacir
+Moadias
+Moamede
+Mocanhimbara
+Mococa
+Mogadixo
+Mogadouro
+Mogeiro
+Mogi
+Moh�mede
+Moimenta
+Moipor�
+Moir�
+Moji
+Moju
+Molad�
+Molara
+Moldova
+Molide
+Molinari
+Molisani
+Momba�a
+Monaldo
+Monalisa
+Monchique
+Moncorvo
+Monda�
+Mondini
+Monforte
+Monfortinho
+Mong�lia
+Mongagu�
+Monigas
+Moniquinha
+Moniz
+Monjardim
+Monlevade
+Monr�via
+Monroe
+Monsanto
+Monsaraz
+Montalegre
+Montalv�nia
+Montalv�o
+Montalvo
+Montauri
+Montebelo
+Montecorvo
+Monteir�polis
+Montejunto
+Montemor
+Montenegro
+Monterverdi
+Montesquieu
+Monteverdi
+Montezuma
+Montoro
+Montreal
+Monza
+Moraes
+Morales
+Mordecai
+Moreil�ndia
+Morel
+Moresete
+Morfeu
+Morgan
+Morgana
+Mori�
+Morpar�
+Morretes
+Mortugaba
+Morumbi
+Morungaba
+Mosconi
+Moscoviano
+Moscovo
+Mosele
+Moser�
+Moserote
+Moses
+Moss�medes
+Motinha
+Motorola
+Mourinha
+Moutinho
+Mozar
+Mozarl�ndia
+Mu�um
+Muan�
+Mucaja�
+Muciano
+Mucug�
+Mucurici
+Muliterno
+Mumtaz
+Mundeo
+Munique
+Muniz
+Mupim
+Muqu�m
+Murari
+Muria�
+Muribeca
+Muricil�ndia
+Muriel
+Murilo
+Muritiba
+Murtada
+Murtosa
+Mussi
+Mussolini
+Mussu�pe
+Mussuca
+Mutu�pe
+Mutun�polis
+Muzambinho
+N�der
+N�dia
+N�poles
+N�sser
+N�ia
+N�vio
+N�vis
+N�cia
+N�colas
+N�dia
+N�nive
+N�brega
+N�rcia
+N�rton
+N�voa
+N.
+NASA
+NBA
+NCr
+NCz
+NE
+NR
+Na�
+Na�deos
+Nabor
+Nabote
+Nabu
+Nadima
+Nadine
+Nadson
+Naiara
+Naida
+Nailton
+Naiote
+Nalani
+Naldino
+Naldo
+Nalone
+Namar
+Namir
+Nanael
+Nanafolia
+Nanci
+Nancy
+Nandinha
+Nantes
+Nanuque
+Naoto
+Napata
+Naraiana
+Narcis�ceas
+Naruto
+Narva
+Nasdaq
+Nasim
+NasirR
+Nassau
+Nassim
+Nat�lie
+Nat�
+Nat�rcia
+Natacha
+Natal�ndia
+Natali
+Natan
+Natanael
+Nataniel
+Natel
+Natuba
+Naum
+Nauru
+Navier
+Navira�
+Naz�rio
+Nazar�
+Nazarezinho
+Nazariel
+Ne�
+Ne�polis
+Ne�cles
+Ne�polis
+NealR
+Neandro
+Nearias
+Nebai
+Nebaiote
+Nebalate
+Nebate
+Nebr�idas
+Neco
+Neemias
+Neide
+NeivaO
+Neli
+Nelson
+Nelton
+Nem�sio
+Nemias
+Nemo
+Nemuel
+Ner�polis
+Nereo
+Nereu
+Nergal
+Nergis
+Neri
+Nerias
+Neroli
+Netanel
+Netanias
+Netof�
+Netuno
+Neusa
+Nic�cio
+Nic�
+Nic�polis
+Nic�sia
+Nicanor
+Nicar�gua
+Nicodemos
+Nicole
+Nicolino
+Nicomedes
+Niemeyer
+Nig�ria
+Nigel
+Nil�polis
+Nilma
+Nilsen
+Nilson
+Nilton
+Nilva
+Nininha
+Ninrode
+Nioaque
+Nipo�
+Niquel�ndia
+Niter�i
+Nivaldo
+Niveo
+Nivia
+No�
+Noadia
+Nob�
+Nobe
+Nobil
+Noboru
+Noelani
+Noelminha
+Noelson
+Noemi
+Nolan
+Noleto
+Nonoai
+Norberto
+Norman
+Normandia
+Noronha
+Nortel�ndia
+Notod�ntidas
+Notre
+Noum�a
+Nov.
+Novaes
+Num�cio
+Numair
+Nuporanga
+OAB
+OCDE
+OE
+OGMA
+OLP
+OMS
+ONG
+ONG's
+ONU
+OO
+OPEP
+ORTN
+OSO
+OTN
+OXI
+Obadias
+Obd�lio
+Obdias
+Oberico
+Oberto
+Obs.
+Ocator
+Ocau�u
+Oceania
+Ocozias
+Ocr�
+Oct�vio
+Octavius
+Od�cio
+Od�lio
+Od�lio
+Od�ria
+Odacir
+Odair
+Odede
+Odele
+Odemar
+Odemira
+Odenato
+Odense
+Odeon
+Odessa
+Odete
+Odilo
+Odilon
+Odilson
+Odin
+Odir
+Odirlei
+Odisseu
+Odivelas
+Odorico
+Odu�no
+Odulfo
+Oduvaldo
+Ofel
+Ogum
+Ohio
+Oiapoque
+Oklahoma
+Ol�vio
+Olavo
+Oldegar
+Oldemar
+Oleg�rio
+Olimpas
+Olinaldo
+Olinda
+Olindina
+Oliose
+Oliv�rio
+Oliven�a
+Oliver
+Olivia
+Olivier
+Olodum
+Olv�dio
+Om�
+Omael
+Omar
+On�
+On�simo
+On�sio
+Ones�foro
+Onias
+Onofre
+Onorato
+OpenOffice
+Or�lia
+Or�genes
+Oraides
+Orebe
+Oregim
+Orestes
+Orfeu
+Oriana
+Orico
+Oriel
+Oriximin�
+Oriz�nia
+Orl�ndia
+Orlandi
+Orlandinho
+Orleans
+Orn�las
+Orneu
+Oroc�
+Orofernes
+Orontes
+Orsini
+Orson
+Ortega
+Ortiz
+Ortolani
+Orvile
+Os�as
+Os�ias
+Os�ris
+Os�rio
+Osaca
+Oscar
+Oscarlinda
+Oscavu
+Osias
+Osmar
+Osmilda
+Osmiro
+Osmundo
+Osram
+Osvaldo
+Osvino
+Ot�vio
+Otac�lio
+Otac�lo
+Otomar
+Otoniel
+Ouri�angas
+Ouril�ndia
+Ourizona
+Ouroeste
+Ourol�ndia
+Ov�dio
+Oviedo
+Oxford
+Oxum
+Oz
+Ozias
+Oziel
+P�ridas
+P�rmenes
+P�tara
+P�mela
+P�
+P�rcio
+P�rgamo
+P�rside
+P�ndaro
+P�rcio
+P�ncio
+P.
+PA
+PABX
+PAC
+PAIGC
+PASEP
+PB
+PC
+PCC
+PCP
+PCR
+PCTP
+PCUS
+PDM
+PDS
+PE
+PF
+PGA
+PGR
+PH
+PIB
+PIS
+PJ
+PKK
+PLD
+PM
+PME
+PP
+PR
+PRD
+PRO
+PROCON
+PS
+PSA
+PSD
+PSF
+PSN
+PSOE
+PSP
+PSR
+PSV
+PT
+Pablo
+Pac�mio
+Pac�nio
+Pacaembu
+Pacajus
+Pacaraima
+Pacatuba
+Pacheco
+Pacu�
+Pacuj�
+Pad�
+Paes
+Pagiel
+Pai�andu
+Palal
+Palau
+Palem�nidas
+Palhano
+Palharini
+Palitagua
+Palm�cia
+Palm�polis
+Palmeir�ndia
+Palmeir�polis
+Palmeirante
+Palmeirina
+Palmelo
+Palmin�polis
+Palmitinho
+Paltiel
+Palu
+Palumbo
+Pampilhosa
+Pamplona
+Pampulha
+Pan�ia
+Panaforte
+Panague
+Panambi
+Pancho
+Pandolfo
+Panfilo
+Pangeia
+Paniago
+Pantano
+Paolo
+Papanduva
+Paquerer
+Paquet�
+Paquist�o
+Par�
+Para�na
+Paracambi
+Paracuru
+Paragominas
+Paraguai
+Paraibuna
+Paraipaba
+Parais�polis
+Paraitinga
+Param�cidas
+Paramaribo
+Parambu
+Paramoti
+Parana�ba
+Parana�ta
+Paranagu�
+Paranaiguara
+Paranapanema
+Paranapiacaba
+Paranapoema
+Paranapu�
+Paranatama
+Paranatinga
+Paranava�
+Parano�
+Paraopeba
+Parapu�
+Paratinga
+Parauapebas
+Pareto
+Pariconha
+Paripiranga
+Paripueira
+Pariquera
+Parisi
+Parm�nio
+Parnagu�
+Parnamirim
+Parnaque
+Parnarama
+Parob�
+Paru�
+Parvaim
+Parvane
+Pas�ia
+Pase�
+Pasolini
+Pasquale
+Passab�m
+Passal�qua
+Passau
+Passira
+Passoni
+Pasteur
+Pastorinho
+Pat�lidas
+Patricia
+Paudalho
+Pauini
+Paulete
+Paulos
+Pav�ncia
+Paverama
+Pe�anha
+Pe.
+Peabiru
+Peca�as
+Pedran�polis
+Pedrin�polis
+Pedrino
+Pedrito
+Pegoraro
+Peju�ara
+Pel�
+Pela�as
+Pelalias
+Pelatias
+Pelegue
+Peloponeso
+Pen�polis
+Penacova
+Penaforte
+Penagui�o
+Penalva
+Penedono
+Peniche
+Penido
+Peniel
+Penipe
+Pensilv�nia
+Pentat�midas
+Pep�is
+Percival
+Perdita
+Perez
+Pergentino
+Perida
+Peritiba
+Peritor�
+Perol�ndia
+Perseu
+Peru�be
+Pet�nidas
+Peta�as
+Peter
+Petersburgo
+Petr�cia
+Petramale
+Petri
+Petrobras
+Petrol�ndia
+Petronilho
+Petronillio
+Petronilo
+Petrucio
+PhD
+Pi�ma
+Pia�abu�u
+Pia�aguera
+Piacatu
+Piaget
+Pianc�
+Piat�
+Piauitinga
+Picasso
+Pierre
+Piltai
+Pimel�didas
+Pimentel
+Pinda�
+Pindamonhangaba
+Pindar�
+Pindoba�u
+Pindoretama
+Ping
+Pinhal�o
+Pinhata
+Pint�polis
+Pioli
+Piquerobi
+Piquiri
+Pira�ba
+Piracaia
+Piracuruca
+Piragibe
+Piraju�
+Pirangi
+Pirangu�u
+Piranguinho
+Pirap�
+Pirapama
+Pirapora
+Pirapozinho
+Piraquera
+Pirassununga
+Piratini
+Piratininga
+Piratom
+Piratuba
+Piren�us
+Piren�polis
+Pirineus
+Pirip�
+Piritiba
+Pirpirituba
+Pirro
+Pis�dia
+Pit�goras
+Piumhi
+Pixinguinha
+Pl�nio
+Plasmodium
+Plat�o
+Plataleidas
+Plauto
+Pleioc�nico
+Pleioceno
+Pocon�
+Pocrane
+Podicip�didas
+Poiel
+Poincar�
+Pol�sine
+Policleto
+Polifeno
+Polit�ridas
+Politefe
+Politzer
+Pomerode
+Pompeo
+Pompeu
+Pondos
+Ponga�
+Pontalina
+Pontalinda
+Pontevedra
+Por�
+Porangatu
+Porteirinha
+Portel�ndia
+Portinari
+Portland
+Portugal
+Poseidon
+PostgreSQL
+Pot�
+Pot�oli
+Pot�fera
+Potengi
+Potifar
+Potim
+Potira
+Potiragu�
+Potirendaba
+Potiretama
+Poxor�o
+Pr�coro
+Pr�ssia
+Pracu�ba
+Prad�polis
+PradialJXZ2HQRV
+Pranchita
+Prat�polis
+Prat�nia
+Prates
+Praxedes
+Presciliano
+Pricila
+Prieto
+Prince
+Priscila
+Priv�
+Proc�pio
+Proctor
+Proen�a
+Prof.�
+Prof.
+Prop�rcio
+Propri�
+Prot�goras
+Prot�sio
+Prouvera
+Prud�ncio
+Prudence
+Prudenciano
+Prudent�polis
+Psam�tico
+Ptolemaida
+Ptolomeu
+Puntel
+Putinga
+Puxinan�
+Q.
+QCA
+QRS
+QT
+Qu�rcia
+Qu�nia
+Quara�
+Quatigu�
+Queilodit�ridas
+Queiloditer�deos
+Queiroz
+Quel�didas
+Quelita
+Quem�s
+Quental
+Querm�sidas
+Quintela
+Quintino
+Quioto
+Quipap�
+Quir�o
+Quirguist�o
+Quiriataim
+Quirin�polis
+Quirino
+Quitandinha
+Quiterian�polis
+Quitim
+Quixab�
+Quixel�
+Quixer�
+Quixeramobim
+R�gis
+R�mulo
+R�d�o
+R�dano
+R�ger
+R�mulo
+R�nei
+R�ssia
+RDA
+RDD
+RDP
+RDTL
+RESP.
+RG
+RISC
+RJ
+RN
+RNA
+RO
+RPR
+RR
+RS
+RTP
+Radag�sio
+Radam�s
+Radamanto
+Radulfo
+Rafael
+Rafaela
+RaimundoOP
+Raisa
+Ram�o
+Rames�s
+Ramil�ndia
+Ramires
+Ramiro
+Rams�s
+Randolfo
+Ranieri
+Raniero
+Ranilda
+Raul
+Rebordelo
+Recabe
+Recursol�ndia
+Refa�as
+Refaim
+Regiane
+Regin�polis
+Reginaldo
+Rejane
+Rem�gio
+Remalias
+Ren�nia
+Ren�
+Requ�m
+Requi�o
+Reriutaba
+Resp.
+Ressaquinha
+Retirol�ndia
+Riachuelo
+Rialma
+Rian�polis
+Riane
+Ribaldo
+Ribatejo
+Ribeir�polis
+Ribla
+Ricardino
+Rigoberto
+Rildo
+Rin�polis
+Rinaldo
+Ringo
+Rinocer�tidas
+Riobamba
+Riol�ndia
+Riozinho
+Riquelme
+Rit�polis
+Rivad�via
+Rivaldo
+Riviera
+Rizost�midas
+Roaldo
+Roana
+Rob�o
+Rob�rio
+Robadel
+Robespierre
+Robin
+Robinho
+Robinson
+Robson
+Roclides
+Rod�sia
+Roderico
+Rodimar
+Rodina
+Rodoberto
+Rodolfo
+Rog�lio
+Rog�rio
+Rom�rio
+Rom�nia
+Rom�nia
+Romel�ndia
+Romero
+Romilda
+Romualdo
+Romuel
+Ronaldinha
+Ronaldo
+Ronan
+Roncol�
+Ronconi
+Rond�nia
+Rondeli
+Rondol�ndia
+Rondon�polis
+Roni
+Ronildo
+Ronise
+Roraima
+Rorain�polis
+Ros�lie
+Ros�lio
+Ros�ngela
+Rosabela
+Rosal�ndia
+Rosalba
+Rosalda
+Rosali
+Rosalice
+Rosalinda
+Rosaline
+Rosamaria
+Rosamundo
+Rosane
+Rosaura
+Roselaine
+Roselena
+Roseli
+Rosendo
+Rosentina
+Rosineide
+Roslindo
+Ross�lio
+Rossana
+Rossandra
+Rossilh�o
+Rossini
+Rosvaldo
+Rosvinda
+Roterd�o
+Ruanda
+Ruben
+Ruberval
+Rubiataba
+Rubin�ia
+Rudolfo
+Rufino
+Rur�polis
+Rurina
+Russel
+S�
+S�lvio
+S�vio
+S�fora
+S�lia
+S�rgio
+S�rvulo
+S�lvio
+S�maco
+S�via
+S�crates
+S�focles
+S�patros
+S�stenes
+S�nia
+S.
+S.A.
+S.O.S.
+SAC
+SBM
+SBPE
+SBT
+SC
+SEBRAE
+SEF
+SELIC
+SESC
+SESI
+SFA
+SFH
+SFI
+SIMC
+SISBACEN
+SISBEX
+SMAS
+SME
+SOS
+SP
+SPD
+STF
+STJ
+SUSEP
+Saara
+Sab�udia
+Saba�na
+Sabar�
+Sabin�polis
+Sabine
+Sabrina
+Sabrosa
+Sal�stio
+Salatiel
+Salazar
+Sales�polis
+Salete
+Salin�polis
+Salom�
+Salopiano
+Salustiano
+Salviano
+Salvino
+Sam�
+Samanta
+Samaria
+Sampaio
+SamuelOR
+Samuelson
+Sanches
+Sanclerl�ndia
+Sandino
+Sandol�ndia
+Sandoval
+Sandovalina
+Sandro
+Sant�polis
+Santan�polis
+Santino
+Sapea�u
+Saquias
+Saracuruna
+Sarafe
+Sarafina
+Sarajevo
+Saralinda
+Sarapu�
+Sarasar
+Sardo�
+Sardoal
+Sarina
+Sarita
+Satomi
+Satoru
+SatubaO
+Saubara
+Saul
+Saulo
+Sav�
+Sav�rio
+Sav�ia
+Savedra
+Savero
+Saviani
+Savine
+Savino
+Seabra
+Sebastian�polis
+Secundido
+Sedex
+Sefuf�
+Segismundo
+Sel�ucia
+Selemias
+Selena
+Selima
+SelmaO
+Selmar
+Selmiro
+Selv�ria
+Semuel
+Sen.
+Senac
+Senai
+Senir
+Sep�lveda
+Ser�pio
+Sera�as
+Serabias
+Serafino
+Serebias
+Sergia
+Sergiane
+Sergipe
+Serinha�m
+Seritinga
+Serop�dica
+Serran�polis
+Serrita
+Serrol�ndia
+Sert�nia
+Sert�rio
+Sertan�polis
+Setubinha
+Sibal
+Sibele
+Sibraim
+Sider�polis
+Sidn�ia
+Sidnei
+Sidney
+Sidom
+Sidrol�ndia
+Sigmundo
+Sil�
+Silmara
+Silo�
+Silv�nia
+Silv�rio
+Silv�ster
+Silvan�polis
+Silvane
+Silveir�nia
+Silveirinha
+Silvian�polis
+Silziene
+Sim�ia
+Simara
+Sime�o
+Simeate
+Simei
+Simere
+Simol�ndia
+Simon�sia
+Simone
+Simoneta
+Sin�sio
+Sinelma
+Sinfr�nio
+Singapura
+Singer
+Sinibaldo
+Sinqui�o
+Sintia
+Siqueira
+Sobroza
+Sodoma
+Soeiro
+Sofonias
+Sofr�nio
+Solange
+Soldeiro
+Soleim�o
+Solicitadoria
+Solidade
+Solino
+Solon�pole
+Solzita
+Som�lia
+Sonoda
+Soraia
+Sorbona
+Soreque
+Sorocaba
+Sorraine
+Sos�patro
+Sos�patros
+Soss�go
+Sotero
+Sotomaior
+Soutelo
+Spinola
+Spinosa
+Sras.
+Srtas.
+Stefane
+Stefano
+Stela
+Su�rez
+Su�dia
+Su�len
+Sua�u�
+Sua�una
+Suassuna
+Suazil�ndia
+Subael
+Sucena
+Sudamar
+Sueli
+Suely
+Suemari
+Suenia
+Suenne
+Suet�nio
+Suez
+Suf�
+Suiane
+Sumaira
+Sumara
+Suriel
+Suriname
+Susan
+Susane
+Susaninha
+Susete
+Susi
+Sut�o
+Suzan�polis
+Suzane
+Suzaninha
+Suzano
+Suzete
+T�cio
+T�liga
+T�lpidas
+T�pua
+T�rrega
+T�vora
+T�mega
+T�misa
+T�nger
+T�nio
+T�nis
+T�nus
+T�ia
+T�jidas
+T�rtulo
+T�stio
+T�mis
+T�quico
+T�didas
+T�quio
+T�fel
+T�nia
+T�rdidas
+T�rios
+T.
+TAM
+TAP
+TC
+TCE
+TELEPAR
+TELESC
+TEQUEL
+TJLP
+TLP
+TPM
+TR
+TRD
+TRE
+TRF
+TRT
+TSA
+TSE
+TST
+TV
+TVI
+Ta�s
+Taba�
+Tabaote
+Tabapor�
+Tabassum
+Tabate
+Tabeal
+Tabeel
+Taber�
+Tabita
+Tabo�o
+Taboado
+Taboc�o
+Taboleiro
+Taborda
+Tabosa
+Tabrimom
+Tabua�o
+Tacaimb�
+Tacarambi
+Tacaratu
+Tacianoi
+Tacima
+Tadeo
+Tadeu
+Tadjiquist�o
+Tadmor
+Tafate
+Tafnes
+Tagar
+Tagua�
+Taguatinga
+Tahani
+TahirR
+Tahmina
+Tai�
+Taiana
+Taiguara
+Tail�ndia
+Taim
+Taipu
+Taiti
+Tajaz
+Tajiquist�o
+Tal�sio
+Tal�ia
+Talarico
+Talita
+Talmai
+TalorR
+Tam�
+Tamacavi
+Tamadur
+Tamam
+TamarR
+Tamba�
+Tamboara
+Tamburi�
+Tamim
+TamirR
+Tancos
+Tanetiano
+Tanganica
+Tanumete
+Tanz�nia
+Tap�ridas
+Taparuba
+Tapau�
+Tapero�
+Tapira�
+Tapiramut�
+Tapiratiba
+Taquarana
+Taquaritinga
+Taquarituba
+Taquariva�
+Taquarussu
+Taquemoni
+Taqueremb�
+Tar�
+Tar�ia
+Tarala
+Tarana
+Tarauac�
+Tarc�sio
+Targino
+Tarqu�nio
+Tars�idas
+Tars�sio
+Tarsila
+Tartaque
+Tarumirim
+Tassinari
+Tasso
+Tatiane
+Taveira
+Tavi
+Tavira
+Te�bulo
+Te�crito
+Te�fanes
+Te�filo
+Te�genes
+Tebaldo
+Tebalias
+Tebe
+Tebes
+Teer�
+Teer�o
+Tegucigalpa
+Teixeir�polis
+TeixeiraOW
+Teju�uoca
+Tejup�
+Tel�m
+Tel�maco
+Tel�nidas
+Telcilene
+Teledamo
+Telesio
+Telmo
+Tem�
+Tem�stocles
+Tenebri�nidas
+Tenessi
+Teobaldo
+Teobardo
+Teod�sio
+Teodemiro
+Teodobaldo
+Teodolinda
+Teodomiro
+Teodoreto
+Teodorico
+Teodoro
+Teof�nia
+Teofil�ndia
+Teofrasto
+Teol�ndia
+Teolbado
+Teolinda
+Teomiro
+Teot�nio
+Ter�nsis
+Ter�ncio
+Terap�nidas
+Tered�nidas
+Terence
+Teres�polis
+Teresina
+Teresita
+TerezaO
+Terps�core
+Tertulino
+Tessal�nica
+Teuf�nio
+Thor
+Tiago
+Tiangu�
+Tib�es
+Tib�rio
+Tib�rcio
+Tibagi
+Tibaji
+Tiber�ades
+Tibiri��
+Ticiano
+Tidal
+Tim�crates
+Tim�teo
+Tim
+Timboteua
+Timeu
+Timora
+Tineidas
+Tinoco
+Tip�lidas
+Tir�nidas
+Tiraca
+Tiradentes
+Tiran�
+Tiria
+Tirol
+Tirza
+To�
+Tobago
+Tobe
+Tobias
+Tocant�nia
+Tocantin�polis
+Tocate
+Tocos
+Tod�sia
+Todem�rio
+Todemiro
+Tofano
+Tofete
+Togarma
+Tolentino
+Tolmai
+Tolosa
+Tolstoi
+Tom�s
+Tom�sia
+Tomaz
+Tomazina
+Tomio
+Tonantins
+Tondela
+Toni
+Tonico
+Toqu�m
+Toquelau
+Tordesilhas
+Toritama
+Torixor�u
+Toronto
+Toropi
+Torped�nidas
+Torrens
+Tortola
+Toyota
+Tr�upidas
+Tr�fimo
+Tr�ade
+Trabiju
+Trag�lidas
+Traipu
+Trairi
+Trajano
+Tramanda�
+Tranquilino
+Transc�ucaso
+Transilv�nia
+Transval
+Tras�bulo
+Travis
+Tremadociano
+Trento
+Trevis
+Triatoma
+Trinidade
+Trinit�
+Triqu�quidas
+Trivium
+Trizidela
+Tuc�dides
+Tucunduva
+Tucuru�
+Tufil�ndia
+Tumiritinga
+Tun�polis
+Tun�sia
+Tuneiras
+Tungurahua
+Tunia
+Tuntum
+Tup�ssi
+Tupa�idas
+Tupaciguara
+Tupanatinga
+Tupanci
+Tupanciret�
+Tupandi
+Tuparendi
+Tuparetama
+Tupim
+Tupirama
+Tupiratins
+Tur�bio
+Turcomenist�o
+Turi�ba
+Turia�u
+Turil�ndia
+Turim
+Turn�cidas
+Turner
+Turquemenist�o
+Turquest�o
+Turv�nia
+Turvel�ndia
+Turvol�ndia
+Tut�ia
+Tutanc�mon
+Tutm�s
+Tutmosis
+U.
+UBP
+UDP
+UDT
+UE
+UEFA
+UEM
+UEO
+UERJ
+UFARSIM
+UFES
+UFIR
+UFMG
+UFPA
+UFPB
+UFPE
+UFPEL
+UFPR
+UFRGS
+UFRJ
+UFRN
+UFRRJ
+UFSC
+UFSM
+UGT
+ULE
+UNITA
+UPC
+URL
+URSS
+USP
+Uadi
+Uagadugu
+Uarini
+Uatum�
+Uba�
+Uba�ra
+Ubaitaba
+Ubajara
+Ubaldino
+Ubaldo
+Ubaporanga
+Ubatuba
+Uberaba
+Uberl�ndia
+Uberto
+Ubiratan
+Ubiretama
+Ubuntu
+Ucal
+Uch�a
+Uel
+Ufaz
+Uganda
+Uiba�
+Uiramut�
+Ul�o
+Uldarico
+Ulhoa
+Ulian�polis
+Ulises
+Ulpiano
+Ulpriano
+Ulrico
+Umabel
+Umbelino
+Umberto
+Umburatiba
+Una�
+Unesco
+Unesp
+Uni�nidas
+Unibanco
+Unicamp
+Uniemp
+Unifesp
+Uniflor
+Unioeste
+Unipar
+Unistalda
+Unisys
+Unix
+Upanema
+Ur
+Urandi
+Urania
+Uranus
+Urban
+Urbi�n
+Urbi
+Urbino
+Uriel
+Urien
+Urs�deos
+Urs
+Ursel
+Urszula
+Urt�ceas
+Uru�u�
+Uru�uca
+Uru�unga
+Urua�u
+Uruana
+Uruar�
+Urubici
+Urubupung�
+Uruburetama
+Urubutinga
+Uruc�nia
+Urucar�
+Urucuia
+Urucurituba
+Uruguai
+Uruoca
+Urup�
+Urussanga
+Uruta�
+Usbequist�o
+Utah
+Utinga
+Uvulari�ceas
+Uz�
+Uz�m
+Uzbequist�o
+Uzi
+Uzias
+Uziel
+V�gner
+V�lter
+V�squez
+V�nia
+V�nus
+V�stula
+V�lpio
+V
+V.Sa.
+V.Sas.
+VCI
+VDM
+VII
+VIII
+VW
+Vaccari
+Vagner
+Val�rio
+Val�ncio
+Val�na
+Valadares
+Valc�cer
+Vald�vio
+Valdecir
+Valdeir
+Valdemar
+Valderez
+Valdes
+Valdete
+Valdevez
+Valdevino
+Valdinea
+Valdir
+Valdirene
+Valdivino
+Valdomiro
+Valdovino
+Valeirinha
+Valeixo
+Valentim
+Valentine
+Valeriano
+Valerie
+Valesca
+Valeska
+Valfredo
+Valfrido
+Valim
+Valinhos
+Valmar
+Valmir
+Valmor
+Valnice
+Valongo
+Valpa�os
+Valpara�so
+Valteno
+Valter
+Vand�ceas
+Vanderlei
+Vanderleia
+Vandique
+Vani
+Vanias
+Vanil�ceas
+Vanini
+Vanita
+Vanuatu
+Vanusa
+Varge�o
+Varjado
+Vars�via
+Varzel�ndia
+Vasconcelos
+Vassoural
+Vasti
+Vaz
+Vedelago
+Vegas
+Vel�squez
+Vel�ncia
+Velasco
+Veldemiro
+Velita
+Ven�cia
+Ven�cio
+Ven�lia
+Venancinha
+Venceslau
+Vendelino
+Veneranda
+Veneto
+Veneza
+Venezuela
+Venina
+Ver�
+Ver�ssimo
+Veralice
+Veran�polis
+Veratr�ceas
+Verdel�ndia
+Verdelete
+Verdi
+Veriano
+Veridiana
+Verona
+Versalhes
+Vesp�cio
+Vespasiano
+Vevila
+Viam�o
+Vian�polis
+Vibaldo
+Viburn�ceas
+Vic�ncia
+Vicentin�polis
+Vict�rio
+Vidal
+Vidigal
+Vidigueira
+Vieir�polis
+Vieirinha
+Viena
+Vienciana
+Vietn�
+Vietname
+Vig�lio
+Vigberto
+Vila�a
+Vila-Francada
+Vilfredo
+Vilhena
+Vilibaldo
+Vilma
+Vilmar
+Vilmaro
+Vilnius
+Vilson
+Vimioso
+Vin�cio
+Vin�cius
+Vinci
+Vinebaldo
+Vinola
+Violani
+Vip�ridas
+Viradouro
+Virg�lio
+Virgil
+Virgin�polis
+Virgol�ndia
+Virgulino
+Viridiano
+Virmara
+Visc�ceas
+Visconti
+Viseu
+Vit�lio
+Vit�rio
+Vitalino
+Viterbo
+Vitic�ceas
+Vitoldo
+Vitor
+Vitorinha
+Viv�rridas
+Viv�ncio
+Vivacqua
+Vivaldi
+Vivaldo
+Vivian
+Viviane
+Vizela
+Vladimir
+Votorantim
+Votuporanga
+Vouga
+Vouzela
+Vulcano
+W.
+Wagner
+Walter
+Washington
+Watson
+Wellington
+Wikip�dia
+Wilson
+Wilton
+X
+X.
+XA
+XC
+XCI
+XCII
+XCIII
+XCIV
+XCIX
+XCV
+XCVI
+XCVII
+XCVIII
+XII
+XIII
+XIV
+XIX
+XL
+XLI
+XLII
+XLIII
+XLIV
+XLIX
+XLV
+XLVI
+XLVII
+XLVIII
+XP
+XV
+XVI
+XVII
+XVIII
+XX
+XXI
+XXII
+XXIII
+XXIV
+XXIX
+XXV
+XXVI
+XXVII
+XXVIII
+XXX
+XXXI
+XXXII
+XXXIII
+XXXIV
+XXXIX
+XXXV
+XXXVI
+XXXVII
+XXXVIII
+Xadai
+Xamaxe
+Xambr�
+Xanana
+Xandu
+Xangai
+Xangri
+Xantipo
+Xantox�leas
+Xantoxil�ceas
+Xanxer�
+Xapuri
+Xaquira
+Xavier
+Xen�crates
+Xenofonte
+Xenofontes
+Xiancai
+Xilof�rias
+Ximena
+Ximenes
+Xing�
+Xingu
+Xinguara
+Xique
+Xopan�
+Yasmim
+Z�nia
+Z�fida
+Z�idas
+Z�lio
+Z�nia
+Z�zere
+Z�bia
+Z�pora
+Z�ilo
+Z�zimo
+Za�ra
+Zabadias
+Zabai
+Zabdiel
+Zabul�o
+Zacai
+Zacarias
+Zadoque
+Zafriel
+Zaide
+Zair
+Zalmom
+Zalmona
+Zamb�zia
+Zambeze
+Zambri
+Zamira
+Zamora
+Zancheta
+Zanchi
+Zandon�
+Zane
+Zanete
+Zaneti
+Zangu�
+Zanini
+Zanoa
+Zanoni�ceas
+Zantoxil�ceas
+ZapataZ2
+Zapatista
+Zapelini
+Zaque
+Zaqueu
+Zara
+Zaratustra
+Zaret�
+Zarifa
+Zarzur
+Ze�deos
+Zeb�
+Zebadias
+Zebe
+Zebedeu
+Zebida
+Zebina
+Zeboim
+Zebube
+Zebul
+ZecaO
+Zeda
+Zedade
+Zedeque
+Zedequias
+Zeferino
+Zel�ndia
+Zelda
+Zeleque
+Zelinda
+Zelita
+Zelmira
+Zemira
+Zen�
+Zen�bio
+Zenaide
+Zenilde
+Zenodoro
+Zered�
+Zerer�
+Zerete
+Zeus
+Zez�
+Zezinha
+Zezito
+Ziba
+Zibe�o
+Ziclague
+Zico
+Zidane
+Zidim
+Zigofil�ceas
+Zil�
+Zilda
+Zilena
+Ziletai
+Zilma
+Zim
+Zimora
+Zimra
+Zimri
+Zinara
+Zingiber�ceas
+Ziomar
+Zior
+Zipor
+Ziraldo
+Zita
+Ziva
+Ziza
+Zizif�ceas
+Zo�
+Zo�
+Zob�
+Zobeba
+Zoelete
+Zor�
+Zoraia
+Zoraide
+Zorana
+Zoroastro
+Zorobabel
+Zort�a
+Zoster�ceas
+Zosterio
+Zuar
+Zubair
+Zuleica
+ZulmiraO
+Zuriel
+Zurique
\ No newline at end of file
diff --git a/site-antigo/extra/FerramentasDeTraducao/review b/site-antigo/extra/FerramentasDeTraducao/review
new file mode 100644
index 0000000..279bee1
--- /dev/null
+++ b/site-antigo/extra/FerramentasDeTraducao/review
@@ -0,0 +1,346 @@
+#!/bin/sh
+#
+# review - proof-read GNOME translations before you commit them.
+# Copyright (C) 2008 Leonardo Ferreira Fontenelle <leonardof gnome org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+
+### User settings
+#
+#
+
+# run 'review --help' to see if you need to change this.
+#
+# lang=pt_BR
+
+# Don't choose an ncurses/slang text editor here, because we need the terminal
+# window free to show the diff. You don't need to append '&' to the end of
+# the command, because the script will do it for you latter. Default: "gedit".
+#
+# editor=gvim
+
+# This is the list of tests to be performed on the second pass of pofilter, if
+# it is installed. The critical tests will be automatically excluded, because
+# they were already performed at the first time.
+#
+# Leave this variable commented to make pofilter perform its standard GNOME
+# tests. If you uncomment the variable, but leave it empty, there will be no
+# second pass. For more information on the pofilter tests, run
+# 'pofilter --listfilters' or read:
+# http://translate.sourceforge.net/wiki/toolkit/pofilter_tests
+#
+# pofilter_tests="acronyms blank emails filepaths functions numbers options purepunc urls endpunc
endwhitespace startwhitespace"
+
+# These are additional, non-test arguments for pofilter. Run 'pofilter --help'
+# for more information. You don't need to set '--language=$lang' or
+# '--progress=none' here, because the script already includes them.
+#
+# If you kept the 'pofilter_tests' commented, you may want to exclude one or two
+# tests. You could uncomment 'pofilter_tests' and set all the tests you want
+# pofilter to run. But you can also use 'pofilter_args' to exclude those
+# unwanted tests, with '--excludefilter=FILTER'.
+#
+# Please notice that this 'pofilter_args' will be used in both pofilter passes!
+#
+# pofilter_args="--nofuzzy --excludefilter=untranslated"
+
+# Uncomment, i. e. erase the "#" before the following option to avoid the
+# instructions given at the end of the script execution:
+#
+# avoid_tips="yes"
+
+### Helper functions
+#
+#
+die() {
+ echo "$1"
+ exit 1
+}
+
+download() {
+ [ -d "$my_dir" ] || mkdir -p "$my_dir"
+ [ $? -eq 0 ] || die "Error! mkdir $my_dir failed"
+
+ wget "$1" --timestamping --directory-prefix="$my_dir" --quiet
+ [ $? -eq 0 ] || die "Error! Could not download $1"
+}
+
+exists(){
+ # Doesn't return error if "which" doesn't exist.
+ [ ! -z "$(which $1 2> /dev/null)" ]
+}
+
+help() {
+ echo "Usage: review [FILENAME | -h | --help]
+
+FILENAME is, obviously, the message catalog to be reviewed. If it is specified,
+it should be something like at-spi.HEAD.pt_BR.po, help.gnome-2-24.pt_BR.po,
+weather-locations.HEAD.pt_BR.po, or user-guide.HEAD.pt_BR.po. This is most
+useful for regular translators to review their own translations, or someone
+elses translations. This mode doesn't require Subversion to be installed.
+
+If the script is run without any arguments, it will guess the file name based on
+the language configuration (see below). The guess will be something like
+'pt_BR.po', and it will be presumed that the file is in the current location and
+under version control with Subversion. This is a good option if you commit
+translations!
+
+This script automatically guesses your language based on \$LANG. If you prefer
+a different language, please edit this script or provide a \$lang environment
+variable. Right now the value of \$lang is $lang.
+
+The script will download a new message catalog from l10n.gnome.org and save it
+with the same name as the message catalog being reviewed, plus a trailing '.dl'.
+Then it will fix long lines from the message catalog being reviewed (e. g. if
+translator used poEdit) and update it with the version downloaded from Damned
+Lies. This way you can use 'diff' much more efficiently to proof-read the
+translation.
+
+Before you have the change to edit the message catalog being reviewed, the
+script will back it up with a 'pre' extension. Then gedit or other text editor
+will open the message catalog, while at the the terminal you can read a paged
+diff between the message catalog from Damned Lies and the one being reviewed.
+Press 'h' if you need any help to jump between highlighted changes, or to exit.
+If you don't like the default text editor, launch your favorite editor and edit
+this script. You can set something like poEdit instead of a text editor, if you
+want. But you really should try reviewing with a text editor, because of the
+usually better search and replace tools.
+
+After reading the output of diff, and fixing any errors, save the file in the
+text editor, but don't close it. When you quit the paged diff at the terminal,
+the script will run 'pofilter' (from the 'translate-toolkit' package) if it is
+installed. In fact, it will run it twice. First it will make only the critical
+tests, and then the others. Besides being less important, the last ones provide
+false-positives more frequently, so you don't have to fix everything they find.
+You can customize the second set of tests by editing this script. (It's easy,I
+swear!)
+
+After running this script, you'll have a proof-read message catalog, as well as
+the .pre version (which is prior to the review) and the .dl version (which is
+the same as in Damned Lies). You can still make any change to the message
+catalog being reviewed. Then, run diff between the message catalog and the .pre
+version to get a list of changes.
+
+If you commit translations, now you can update the ChangeLog and commit the
+message catalog ;)
+
+To avoid the 'If you need instructions ...' message at the end, please edit this
+script.
+"
+}
+
+### Code execution starts here
+#
+#
+lang=${lang:-${LANG%.*}}
+editor=${editor:-"gedit"}
+my_dir="$HOME/.damned-lies"
+dl_server="${dl_server:-"http://l10n.gnome.org"}"
+dependencies="less xmlstarlet wget"
+releases_file="releases.xml"
+modules_file="gnome-modules.xml.in"
+
+case $# in
+ "0")
+ catalog=$lang.po
+ [ -f "$catalog" ] || die "Error! Couldn't find $catalog"
+ use_svn="yes"
+ ;;
+ "1")
+ # TODO: if $1 is a SVN-controled $lang.po, set use_svn="yes"
+ if [ -f "$1" ]; then catalog="$1"
+ elif [ $1 = "--help" -o $1 = "-h" ]; then { help; exit; }
+ else die "Error! Couldn't find $1"
+ fi
+ use_svn=""
+ ;;
+ "*")
+ help
+ exit 1
+ ;;
+esac
+
+[ "$use_svn" ] && dependencies="$dependencies svn"
+
+if [ -z "$(which --version)" ]; then
+ echo "Warning! 'which' not found. Can't check for dependencies."
+else
+ for dep in $dependencies; do
+ exists "$dep" || die "Error! $dep not found."
+ done
+fi
+
+echo -n "Downloading the message catalog from Damned Lies... "
+
+if [ "$use_svn" ]; then
+ [ -z "$(ssh-add -l)" ] && ssh-add
+ [ -z "$(svn diff)" ] && die "No local changes... leaving."
+ svninfo_url="$(svn info --xml "$catalog" | xmlstarlet sel -t -v //url)"
+ svninfo_root="$(svn info --xml "$catalog" | xmlstarlet sel -t -v //root)"
+ module="$(basename $svninfo_root)"
+ svnpath="$(dirname $module/${svninfo_url##$svninfo_root/})"
+ case $svnpath in
+ $module/trunk* )
+ release_xpath="//release[.//module[@id='$module' and not(@branch)]][last()]/@id"
+ ;;
+ $module/branches* )
+ branch=$(echo $svnpath | cut -d / -f 3)
+ release_xpath="//release[.//module[@id='$module' and @branch='$branch']][last()]/@id"
+ ;;
+ * )
+ die "Error! Can't find branch name in $svnpath"
+ ;;
+ esac
+ download "$dl_server/po/$lang/$releases_file"
+ release=$(xmlstarlet sel -t -v "$release_xpath" "$my_dir/$releases_file")
+ download "$dl_server/languages/$lang/$release.xml"
+ pofile_xpath="//domain[svnpath='$svnpath'] | //document[svnpath='$svnpath']"
+ pofile="$( xmlstarlet sel -t -m "$pofile_xpath" -v "pofile" "$my_dir/$release.xml")"
+else
+ for i in 1 2 3 4; do
+ eval part$i=$(echo $(basename "$catalog") | cut -d . -f $i)
+ [ $? -eq 0 ] || die "Error! Invalid filename: $catalog"
+ done
+ [ $part4 = "po" ] || die "Error! Invalid filename: $catalog"
+ lang=$part3
+ branch=$part2 # e. g. "HEAD", "gnome-2-24"
+
+ download "http://svn.gnome.org/svn/damned-lies/trunk/$modules_file"
+ f="$my_dir/$modules_file"
+
+ # Some of the possible values for $part1:
+ # - "libgweather": the domain name is the same as the module name
+ # - "libgweather-locations": ops, this module has another translation domain!
+ # - "user-guide": document from the gnome-user-docs module
+ # - "help": <irony>nice</irony>. Now which module is this from?
+ #
+ if [ ! -z "$(xmlstarlet sel -t -c "//module[@id='$part1']" "$f")" ]; then
+ module=$part1
+ module_type="domain"
+ elif [ "$(xmlstarlet sel -t -c "count(//domain[@potbase='$part1'])" "$f")" -eq 1 ]; then
+ module=$(xmlstarlet sel -t -v "//module[.//domain[@potbase='$part1']]/@id" "$f")
+ module_type="domain"
+ elif [ "$(xmlstarlet sel -t -c "count(//document[@id='$part1'])" "$f")" -eq 1 ]; then
+ module=$(xmlstarlet sel -t -v "//module[.//document[@id='$part1']]/@id" "$f")
+ module_type="document"
+ elif [ "$(xmlstarlet sel -t -c "count(//document[@id='$part1'])" "$f")" -gt 1 ]; then
+ module_list="$(xmlstarlet sel -t -m "//module[.//document[@id='$part1']]" -v "@id" -n "$f" |
tr ' ' '\n' | sort)"
+ module_count=$(echo $module_list | wc -w)
+ echo
+ echo
+ echo "There are $module_count modules for this file name:"
+ for m in $module_list; do
+ # The dash builtin accepts escape sequences by default.
+ # The bash posix mode doesn't.
+ echo " $m"
+ done
+ # TODO: default value from Project-Id-Version
+ echo -n "Please enter the desired module name: "
+ read module
+ module_is_valid=""
+ for m in $module_list; do
+ [ "$m" = "$module" ] && module_is_valid="yes"
+ done
+ [ "$module_is_valid" ] || die "Error! Invalid module name: $module"
+ module_type="document"
+ else
+ die "Error! Couldn't find out the module name for file $catalog"
+ fi
+
+ if [ $module_type = "domain" ]; then
+ pofile=POT/$module.$branch/$part1.$part2.$part3.$part4
+ elif [ $module_type = "document" ]; then
+ pofile=POT/$module.$branch/docs/$part1.$part2.$part3.$part4
+ else
+ die "Error! Invalid \$module_type: $module_type"
+ fi
+fi
+
+catalog_dl="$catalog.dl" # The version downloaded from Damned Lies
+catalog_pre="$catalog.pre" # Same translations as before the script was run
+
+wget -q -O "$catalog_dl" "$dl_server/$pofile"
+[ $? -eq 0 ] || wget -q -O "$catalog_dl" \
+ "$dl_server/$(dirname $pofile)/$(basename $pofile .$lang.po).pot"
+[ $? -eq 0 ] || die "Error! Couldn't download $dl_server/$pofile"
+
+echo "done!"
+
+echo
+
+# Tidy up for better diffs
+msgmerge --update "$catalog" "$catalog_dl" --quiet || exit 1
+msgcat "$catalog" --output="$catalog" || exit 1
+cp "$catalog" "$catalog_pre"
+
+for file in "$catalog" "$catalog_dl"; do
+ echo -n "$(basename "$file"): "
+ msgfmt -cvo /dev/null "$file"
+done
+
+echo
+
+$editor "$catalog" &
+
+# Let the user see the ouput of msgfmt
+echo -n "Differences from the version in Damned Lies version... "
+sleep 3
+diff --unified "$catalog_dl" "$catalog_pre" | less -p "^\+[^#]"
+[ $? -eq 0 ] && echo "done!"
+
+# http://translate.sourceforge.net/wiki/toolkit/pofilter
+exists pofilter && {
+ # http://translate.sourceforge.net/wiki/toolkit/pofilter_tests
+ critical_tests="accelerators escapes newlines nplurals \
+ printf tabs variables xmltags"
+
+ include_critical=""
+ for test in $critical_tests; do
+ include_critical="$include_critical -t $test"
+ done
+
+ include_others=""
+ for test in $pofilter_tests; do
+ include_others="$include_others -t $test"
+ done
+
+ exclude_critical=""
+ for test in $critical_tests; do
+ exclude_critical="$exclude_critical --excludefilter=$test"
+ done
+
+ echo -n "Running critical pofilter tests... "
+ sleep 2
+ pofilter "$catalog" \
+ --language=$lang --progress=none \
+ $pofilter_args \
+ $include_critical \
+ | less
+ [ $? -eq 0 ] && echo "done!"
+
+ # Results false if 'pofilter_tests' is set but empty.
+ [ "${pofilter_tests-"--gnome"}" ] && {
+ echo -n "Running other pofilter tests... "
+ sleep 2
+ pofilter "$catalog" \
+ --language=$lang --progress=none \
+ $pofilter_args \
+ ${include_others:-"--gnome"} \
+ $exclude_critical \
+ | less
+ [ $? -eq 0 ] && echo "done!"
+ }
+}
+
+[ $avoid_tips ] || echo "
+If you need instructions on what to do from now on, run 'review --help'
+"
diff --git a/site-antigo/extra/Forum/bannerFixo_468x60.png b/site-antigo/extra/Forum/bannerFixo_468x60.png
new file mode 100644
index 0000000..9477fb2
Binary files /dev/null and b/site-antigo/extra/Forum/bannerFixo_468x60.png differ
diff --git a/site-antigo/extra/LayoutTemplate/logo.gif b/site-antigo/extra/LayoutTemplate/logo.gif
new file mode 100644
index 0000000..fe993a6
Binary files /dev/null and b/site-antigo/extra/LayoutTemplate/logo.gif differ
diff --git a/site-antigo/extra/MaterialDivulgacao/BannerA4_A1-thumb.png
b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1-thumb.png
new file mode 100644
index 0000000..7c0b4ab
Binary files /dev/null and b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1-thumb.png differ
diff --git a/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.png
b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.png
new file mode 100644
index 0000000..4bed6a2
Binary files /dev/null and b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.png differ
diff --git a/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.svg
b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.svg
new file mode 100644
index 0000000..625c8d7
--- /dev/null
+++ b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.svg
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448"
+ height="1052.3622"
+ id="svg17479"
+ sodipodi:version="0.32"
+ inkscape:version="0.45+devel"
+ version="1.0"
+ sodipodi:docname="BannerA4_A1.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs17481">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2934">
+ <stop
+ style="stop-color:#448c20;stop-opacity:1"
+ offset="0"
+ id="stop2936" />
+ <stop
+ style="stop-color:#2b4e1c;stop-opacity:1"
+ offset="1"
+ id="stop2938" />
+ </linearGradient>
+ <filter
+ inkscape:collect="always"
+ x="-0.16053332"
+ width="1.3210666"
+ y="-0.13060836"
+ height="1.2612166"
+ id="filter5301">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="7.7228722"
+ id="feGaussianBlur5303" />
+ </filter>
+ <linearGradient
+ id="linearGradient3272">
+ <stop
+ style="stop-color:#fff38d;stop-opacity:1"
+ offset="0"
+ id="stop3274" />
+ <stop
+ style="stop-color:#f8df00;stop-opacity:1"
+ offset="1"
+ id="stop3276" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3272"
+ id="radialGradient3280"
+ cx="229.80138"
+ cy="55.809341"
+ fx="229.80138"
+ fy="55.809341"
+ r="43.346268"
+ gradientTransform="matrix(1,0,0,0.6016744,-11.802798,30.60875)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient16494">
+ <stop
+ id="stop16496"
+ offset="0"
+ style="stop-color:#204a87;stop-opacity:1;" />
+ <stop
+ style="stop-color:#3f7bd2;stop-opacity:1;"
+ offset="0.21212122"
+ id="stop16502" />
+ <stop
+ id="stop16498"
+ offset="1"
+ style="stop-color:#204a87;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16494"
+ id="linearGradient12574"
+ gradientUnits="userSpaceOnUse"
+ x1="82.585045"
+ y1="28.112621"
+ x2="92.954216"
+ y2="28.112621" />
+ <linearGradient
+ id="linearGradient16522">
+ <stop
+ id="stop16524"
+ offset="0"
+ style="stop-color:#edda00;stop-opacity:1;" />
+ <stop
+ style="stop-color:#fff491;stop-opacity:1;"
+ offset="0.27272728"
+ id="stop16530" />
+ <stop
+ id="stop16526"
+ offset="1"
+ style="stop-color:#ebd200;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16522"
+ id="linearGradient12572"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.2174665,0.5700599,-1.3887789,1.8202798,-168.98426,-86.151331)"
+ x1="69.857536"
+ y1="-19.37989"
+ x2="86.576172"
+ y2="-36.549217" />
+ <linearGradient
+ id="linearGradient7336">
+ <stop
+ style="stop-color:#619605;stop-opacity:1;"
+ offset="0"
+ id="stop7338" />
+ <stop
+ id="stop7340"
+ offset="0.19283746"
+ style="stop-color:#76ce0f;stop-opacity:1;" />
+ <stop
+ style="stop-color:#5fae03;stop-opacity:1;"
+ offset="0.80432421"
+ id="stop3298" />
+ <stop
+ style="stop-color:#4f8e05;stop-opacity:1;"
+ offset="1"
+ id="stop7342" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7336"
+ id="linearGradient12570"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.0778077,-1.06702,1.0608838,3.0601075,-77.910514,-151.4351)"
+ x1="11.002116"
+ y1="29.756582"
+ x2="46.998974"
+ y2="29.756582" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath12540">
+ <g
+ style="opacity:0.48559672;fill:url(#radialGradient12556);fill-opacity:1"
+ transform="matrix(0.5602909,0,0,0.5602909,15.06491,-124.7085)"
+ id="g12542">
+ <g
+ style="fill:url(#radialGradient12558);fill-opacity:1"
+ id="g12544">
+ <path
+ style="fill:url(#radialGradient12560);fill-opacity:1"
+ id="path12546"
+ d="M 86.068,0 C 61.466,0 56.851,35.041 70.691,35.041 C 84.529,35.041 110.671,0 86.068,0 z" />
+ <path
+ style="fill:url(#radialGradient12562);fill-opacity:1"
+ id="path12548"
+ d="M 45.217,30.699 C 52.586,31.149 60.671,2.577 46.821,4.374 C 32.976,6.171 37.845,30.249
45.217,30.699 z" />
+ <path
+ style="fill:url(#radialGradient12564);fill-opacity:1"
+ id="path12550"
+ d="M 11.445,48.453 C 16.686,46.146 12.12,23.581 3.208,29.735 C -5.7,35.89 6.204,50.759
11.445,48.453 z" />
+ <path
+ style="fill:url(#radialGradient12566);fill-opacity:1"
+ id="path12552"
+ d="M 26.212,36.642 C 32.451,35.37 32.793,9.778 21.667,14.369 C 10.539,18.961 19.978,37.916
26.212,36.642 L 26.212,36.642 z" />
+ <path
+ style="fill:url(#radialGradient12568);fill-opacity:1"
+ id="path12554"
+ d="M 58.791,93.913 C 59.898,102.367 52.589,106.542 45.431,101.092 C 22.644,83.743 83.16,75.088
79.171,51.386 C 75.86,31.712 15.495,37.769 8.621,68.553 C 3.968,89.374 27.774,118.26 52.614,118.26 C
64.834,118.26 78.929,107.226 81.566,93.248 C 83.58,82.589 57.867,86.86 58.791,93.913 L 58.791,93.913 z" />
+ </g>
+ </g>
+ </clipPath>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3272"
+ id="radialGradient17602"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7117388,0,0,0.428235,-72.611624,89.93569)"
+ cx="229.80138"
+ cy="55.809341"
+ fx="229.80138"
+ fy="55.809341"
+ r="43.346268" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3272"
+ id="radialGradient2997"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.7117388,0,0,0.428235,-72.611624,89.93569)"
+ cx="229.80138"
+ cy="55.809341"
+ fx="229.80138"
+ fy="55.809341"
+ r="43.346268" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3272"
+ id="radialGradient3022"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.939668,0,0,0.5653742,-131.3004,82.24922)"
+ cx="229.80138"
+ cy="55.809341"
+ fx="229.80138"
+ fy="55.809341"
+ r="43.346268" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3272"
+ id="radialGradient3063"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.939668,0,0,0.5653742,-131.3004,82.24922)"
+ cx="229.80138"
+ cy="55.809341"
+ fx="229.80138"
+ fy="55.809341"
+ r="43.346268" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3272"
+ id="radialGradient3088"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.3080076,0,0,2.5920179,-648.59687,621.62651)"
+ cx="229.80138"
+ cy="55.809341"
+ fx="229.80138"
+ fy="55.809341"
+ r="43.346268" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2934"
+ id="linearGradient3104"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.6688862,0,0,11.705417,10.31417,-47.032252)"
+ x1="157.5"
+ y1="75.5"
+ x2="157.5"
+ y2="-6.3443646" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7336"
+ id="linearGradient3106"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.0778077,-1.06702,1.0608838,3.0601075,-77.910514,-151.4351)"
+ x1="11.002116"
+ y1="29.756582"
+ x2="46.998974"
+ y2="29.756582" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16522"
+ id="linearGradient3108"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.2174665,0.5700599,-1.3887789,1.8202798,-168.98426,-86.151331)"
+ x1="69.857536"
+ y1="-19.37989"
+ x2="86.576172"
+ y2="-36.549217" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16494"
+ id="linearGradient3110"
+ gradientUnits="userSpaceOnUse"
+ x1="82.585045"
+ y1="28.112621"
+ x2="92.954216"
+ y2="28.112621" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35355339"
+ inkscape:cx="321.93256"
+ inkscape:cy="371.63076"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="744.09449px"
+ height="1052.3622px"
+ inkscape:window-width="1280"
+ inkscape:window-height="727"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <metadata
+ id="metadata17484">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Camada 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(-13.010153,45.903576)">
+ <rect
+
style="fill:url(#linearGradient3104);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.60000038;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35294118;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect2345"
+ width="744.09113"
+ height="1052.359"
+ x="13.010152"
+ y="-45.903568" />
+ <g
+ id="g2948"
+ transform="matrix(9.2155675,0,0,9.2155675,-568.79807,149.79821)">
+ <g
+ id="g4276"
+ transform="matrix(0.4798818,0,0,0.4798818,80.419926,-10.632001)"
+ style="opacity:0.28395063;fill:#000000;fill-opacity:1;filter:url(#filter5301)">
+ <g
+ id="g4278"
+ style="fill:#000000;fill-opacity:1">
+ <path
+ d="M 86.068,0 C 61.466,0 56.851,35.041 70.691,35.041 C 84.529,35.041 110.671,0 86.068,0 z"
+ id="path4280"
+ style="fill:#000000;fill-opacity:1" />
+ <path
+ d="M 45.217,30.699 C 52.586,31.149 60.671,2.577 46.821,4.374 C 32.976,6.171 37.845,30.249
45.217,30.699 z"
+ id="path4282"
+ style="fill:#000000;fill-opacity:1" />
+ <path
+ d="M 11.445,48.453 C 16.686,46.146 12.12,23.581 3.208,29.735 C -5.7,35.89 6.204,50.759
11.445,48.453 z"
+ id="path4284"
+ style="fill:#000000;fill-opacity:1" />
+ <path
+ d="M 26.212,36.642 C 32.451,35.37 32.793,9.778 21.667,14.369 C 10.539,18.961 19.978,37.916
26.212,36.642 L 26.212,36.642 z"
+ id="path4286"
+ style="fill:#000000;fill-opacity:1" />
+ <path
+ d="M 58.791,93.913 C 59.898,102.367 52.589,106.542 45.431,101.092 C 22.644,83.743 83.16,75.088
79.171,51.386 C 75.86,31.712 15.495,37.769 8.621,68.553 C 3.968,89.374 27.774,118.26 52.614,118.26 C
64.834,118.26 78.929,107.226 81.566,93.248 C 83.58,82.589 57.867,86.86 58.791,93.913 L 58.791,93.913 z"
+ id="path4288"
+ style="fill:#000000;fill-opacity:1" />
+ </g>
+ </g>
+ <g
+ transform="matrix(0.8564868,0,0,0.8564868,67.51703,96.17918)"
+ clip-path="url(#clipPath12540)"
+ id="g12534">
+ <path
+
style="fill:url(#linearGradient3106);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.52627635;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+ d="M -23.244211,-108.13843 C -1.92169,-137.95153 57.7376,-129.54765 84.46937,-145.48078 L
111.09999,-68.66506 C 86.55992,-49.855935 28.62911,-61.88891 3.386405,-31.322718 L -23.244211,-108.13843 z"
+ id="path6459"
+ sodipodi:nodetypes="ccccc" />
+ <path
+
style="fill:url(#linearGradient3108);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.77875161;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 33.962827,-113.06496 C 48.102324,-106.03931 61.316049,-103.107 73.938718,-102.78807 C
67.678501,-87.349757 58.299494,-78.641409 48.902182,-69.972551 C 34.131969,-76.99176 20.808194,-80.978039
9.0012083,-81.783898 C 16.459572,-94.697855 25.018726,-104.43659 33.962827,-113.06496 z"
+ id="rect7346"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:type="arc"
+
style="fill:url(#linearGradient3110);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.66970444;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path10004"
+ sodipodi:cx="87.76963"
+ sodipodi:cy="28.112621"
+ sodipodi:rx="4.6845822"
+ sodipodi:ry="4.6845822"
+ d="M 92.454213,28.112621 A 4.6845822,4.6845822 0 1 1 83.085048,28.112621 A 4.6845822,4.6845822 0
1 1 92.454213,28.112621 z"
+ transform="matrix(2.6182273,-0.5740627,0.8681029,2.504033,-211.52392,-111.90753)" />
+ <path
+
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.77875185px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 49.203125,-96.421875 C 46.812956,-96.426096 44.187105,-96.14886 41.6875,-95.625 C
37.20577,-94.685731 32.891826,-92.918949 30.184016,-90.019049 C 30.288931,-89.382832 30.577324,-88.647235
30.872117,-88.068913 C 33.066806,-90.921212 37.452193,-92.945836 42.109375,-93.921875 C 46.854606,-94.916367
51.937884,-94.84898 55.171875,-93.921875 C 54.928503,-94.575012 54.694306,-95.22815 54.411354,-95.881287 C
52.833834,-96.212054 51.106606,-96.418513 49.203125,-96.421875 z"
+ id="path15173"
+ sodipodi:nodetypes="csccsccc" />
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+
style="font-size:121.21566772px;font-style:normal;font-weight:normal;line-height:-124625369600%;fill:url(#radialGradient3088);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ x="196.62158"
+ y="848.06158"
+ id="text6220"
+ sodipodi:linespacing="-1.2462537e+11%"><tspan
+ sodipodi:role="line"
+ id="tspan6222"
+ x="196.62158"
+ y="848.06158"
+
style="font-weight:bold;letter-spacing:-2.87200451;fill:url(#radialGradient3088);fill-opacity:1;font-family:Trebuchet
MS">BRASIL</tspan></text>
+ <g
+ transform="matrix(4.584606,0,0,4.584606,-41.316398,-458.84006)"
+ id="g16326"
+ style="fill:none">
+ <g
+ id="g16328"
+ transform="translate(36.912724,109.5415)"
+ style="fill:none">
+ <path
+ d="M 17.718,132.165 L 16.228,135.022 C 15.81,134.648 15.164,134.276 14.291,133.907 C
13.418,133.538 12.668,133.352 12.041,133.352 C 10.077,133.352 8.527,134.02 7.391,135.356 C 6.254,136.693
5.686,138.483 5.686,140.726 C 5.686,142.861 6.243,144.567 7.357,145.843 C 8.471,147.119 9.987,147.758
11.906,147.758 C 13.17,147.758 14.211,147.412 15.03,146.721 L 15.03,142.789 L 12.249,142.789 L 12.249,139.758
L 18.593,139.758 L 18.593,148.716 C 17.746,149.408 16.655,149.947 15.322,150.334 C 13.989,150.721
12.661,150.914 11.341,150.914 C 8.473,150.914 6.199,149.973 4.519,148.09 C 2.839,146.207 1.999,143.721
1.999,140.631 C 1.999,137.539 2.913,135.027 4.742,133.095 C 6.57,131.162 9.031,130.196 12.124,130.196 C
14.316,130.196 16.181,130.852 17.718,132.165 L 17.718,132.165 z"
+ id="path16330"
+ style="fill:none" />
+ <path
+ d="M 34.892,150.853 L 25.173,138.165 L 25.173,150.571 L 21.767,150.571 L 21.767,130.54 L
23.486,130.54 L 32.924,142.634 L 32.924,130.54 L 36.33,130.54 L 36.33,150.853 L 34.892,150.853 L
34.892,150.853 z"
+ id="path16332"
+ style="fill:none" />
+ <path
+ d="M 39.487,140.392 C 39.487,137.54 40.268,135.128 41.832,133.156 C 43.395,131.183 45.484,130.197
48.1,130.197 C 50.981,130.197 53.182,131.09 54.704,132.876 C 56.226,134.662 56.987,137.168 56.987,140.393 C
56.987,143.62 56.192,146.179 54.602,148.075 C 53.01,149.97 50.752,150.917 47.827,150.917 C 45.139,150.917
43.077,149.979 41.641,148.103 C 40.205,146.227 39.488,143.656 39.488,140.394 L 39.487,140.392 z M
43.175,140.392 C 43.175,142.734 43.571,144.547 44.365,145.831 C 45.158,147.116 46.312,147.759 47.826,147.759
C 49.605,147.759 50.962,147.13 51.896,145.872 C 52.832,144.615 53.298,142.788 53.298,140.392 C 53.298,135.7
51.566,133.353 48.099,133.353 C 46.512,133.353 45.294,133.989 44.446,135.259 C 43.597,136.53 43.174,138.241
43.174,140.392 L 43.175,140.392 z"
+ id="path16334"
+ style="fill:none" />
+ <path
+ d="M 78.831,150.571 L 75.393,150.571 L 73.299,139.79 L 69.268,150.853 L 67.987,150.853 L
63.94,139.79 L 61.799,150.571 L 58.361,150.571 L 62.392,130.54 L 64.267,130.54 L 68.626,144.04 L 72.86,130.54
L 74.735,130.54 L 78.829,150.571 L 78.831,150.571 z"
+ id="path16336"
+ style="fill:none" />
+ <path
+ d="M 84.569,133.696 L 84.569,138.384 L 91.007,138.384 L 91.007,141.415 L 84.569,141.415 L
84.569,147.415 L 93.632,147.415 L 93.632,150.571 L 81.006,150.571 L 81.006,130.54 L 93.631,130.54 L
93.631,133.696 L 84.568,133.696 L 84.569,133.696 z"
+ id="path16338"
+ style="fill:none" />
+ </g>
+ <path
+ d="M 134.0342,235.09964 L 134.01848,235.85421 L 136.53373,235.85421 L 136.53373,241.89081 L
137.42979,241.89081 L 137.42979,235.85421 L 139.835,235.85421 L 139.835,235.09964 L 134.0342,235.09964 z M
140.8411,235.09964 L 140.8411,241.89081 L 141.82362,241.89081 L 141.82362,236.35726 L 143.71005,240.66463 L
144.23668,240.67249 L 146.12312,236.35726 L 146.12312,241.89081 L 147.08992,241.89081 L 147.08992,235.09964 L
145.98164,235.09964 L 143.96944,239.76857 L 141.95724,235.09964 L 140.8411,235.09964 z"
+ style="fill:none"
+ id="path16340" />
+ </g>
+ <text
+ id="text16342"
+ y="864.59912"
+ x="176.88203"
+
style="font-size:128.99839783px;font-style:normal;font-weight:normal;fill:none;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ xml:space="preserve"><tspan
+ style="font-weight:bold;fill:none;fill-opacity:1;font-family:Trebuchet MS"
+ y="864.59912"
+ x="176.88203"
+ id="tspan16344"
+ sodipodi:role="line">BRASIL</tspan></text>
+ <g
+ transform="matrix(0.78435,0,0,0.78435,-2919.8395,-312.89032)"
+ style="fill:#ffffff;fill-opacity:1"
+ id="g2492">
+ <path
+ d="M 4176.3,1214.44 C 4161.19,1214.85 4149.26,1220.28 4140.48,1230.69 C 4131.4,1241.53
4126.83,1256.5 4126.83,1275.6 C 4126.83,1294.64 4131.4,1309.57 4140.48,1320.41 C 4149.61,1331.25
4162.15,1336.66 4178.14,1336.66 C 4194.17,1336.66 4206.74,1331.25 4215.83,1320.41 C 4224.91,1309.57
4229.45,1294.64 4229.45,1275.6 C 4229.45,1256.5 4224.91,1241.53 4215.83,1230.69 C 4206.74,1219.85
4194.17,1214.44 4178.14,1214.44 C 4177.52,1214.44 4176.91,1214.42 4176.3,1214.44 z M 4177.42,1236.44 C
4177.66,1236.43 4177.9,1236.44 4178.14,1236.44 C 4186.02,1236.44 4192.13,1239.85 4196.45,1246.69 C
4200.77,1253.53 4202.95,1263.18 4202.95,1275.6 C 4202.95,1287.96 4200.77,1297.54 4196.45,1304.38 C
4192.13,1311.22 4186.02,1314.66 4178.14,1314.66 C 4170.3,1314.66 4164.24,1311.22 4159.92,1304.38 C
4155.6,1297.54 4153.42,1287.96 4153.42,1275.6 C 4153.42,1263.18 4155.6,1253.53 4159.92,1246.69 C
4164.11,1240.07 4169.93,1236.65 4177.42,1236.44 z"
+
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ id="path2494" />
+ <path
+ d="M 4005.63,1325.61 C 3992.32,1336.79 3972.52,1336.66 3964.27,1336.66 C 3947.66,1336.66
3934.5,1331.19 3924.79,1320.25 C 3915.08,1309.25 3910.23,1294.36 3910.23,1275.58 C 3910.23,1256.59
3915.17,1241.65 3925.06,1230.76 C 3934.95,1219.87 3948.49,1214.43 3965.68,1214.43 C 3972.31,1214.43
3978.66,1215.17 3984.72,1216.64 C 3990.82,1218.11 3996.57,1220.3 4001.95,1223.19 L 3995.03,1243.65 C
3992,1241.99 3988.54,1240.36 3985.32,1239.21 C 3979.84,1237.37 3974.34,1236.45 3968.82,1236.45 C
3958.57,1236.45 3950.67,1239.84 3945.1,1246.62 C 3939.58,1253.36 3936.82,1263.01 3936.82,1275.58 C
3936.82,1288.05 3939.49,1297.68 3944.83,1304.46 C 3950.18,1311.25 3958.21,1314.64 3967.61,1314.64 C
3977.17,1314.64 3983.09,1312.24 3986.24,1309.7 L 3986.24,1289.31 L 3965.54,1289.31 L 3965.54,1268.96 L
4005.63,1268.96"
+
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ id="path2496" />
+ <path
+ d="M 4023.21,1216.56 L 4039.44,1216.56 L 4090.72,1287.36 L 4090.72,1216.56 L 4112.6,1216.56 L
4112.6,1334.37 L 4096.37,1334.37 L 4045.1,1263.57 L 4045.1,1334.37 L 4023.21,1334.37 L 4023.21,1216.56"
+
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ id="path2498" />
+ <path
+ d="M 4246.34,1216.56 L 4279.07,1216.56 L 4301.79,1290.11 L 4324.64,1216.56 L 4352.31,1216.56 L
4364.81,1334.37 L 4340.49,1334.37 L 4332.99,1260.7 L 4310.01,1334.72 L 4293.7,1334.72 L 4270.72,1258.2 L
4263.22,1334.37 L 4238.84,1334.37 L 4251.34,1216.56"
+
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ id="path2500" />
+ <path
+ d="M 4382.36,1216.56 L 4451.77,1216.56 L 4451.77,1239.52 L 4408.08,1239.52 L 4408.08,1263.96 L
4441.67,1263.96 L 4441.67,1284.42 L 4408.08,1284.42 L 4408.08,1311.41 L 4453.24,1311.41 L 4453.24,1334.37 L
4382.36,1334.37 L 4382.36,1216.56"
+
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ id="path2502" />
+ <text
+ x="4474.6201"
+ y="1215.74"
+
style="font-size:30.68959999px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ id="text2504"
+ xml:space="preserve"><tspan
+ style="fill:#ffffff;fill-opacity:1"
+ x="4474.6201"
+ y="1215.74"
+ id="tspan2506"><tspan
+ style="fill:#ffffff;fill-opacity:1"
+ id="tspan2508">TM</tspan></tspan></text>
+ </g>
+ <text
+ xml:space="preserve"
+
style="font-size:55.01527023000000582px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ x="116.26529"
+ y="948.28326"
+ id="text2968"><tspan
+ sodipodi:role="line"
+ id="tspan2970"
+ x="116.26529"
+ y="948.28326">http://br.gnome.org</tspan></text>
+ </g>
+</svg>
diff --git a/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.xcf
b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.xcf
new file mode 100644
index 0000000..b247633
Binary files /dev/null and b/site-antigo/extra/MaterialDivulgacao/BannerA4_A1.xcf differ
diff --git a/site-antigo/extra/MaterialDivulgacao/BannerWeb_468x60.svg
b/site-antigo/extra/MaterialDivulgacao/BannerWeb_468x60.svg
new file mode 100644
index 0000000..49c33d2
--- /dev/null
+++ b/site-antigo/extra/MaterialDivulgacao/BannerWeb_468x60.svg
@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="468px"
+ height="60px"
+ id="svg3166"
+ sodipodi:version="0.32"
+ inkscape:version="0.45+devel"
+ inkscape:export-filename="/home/valessio/Desktop/gnome-br/bannerFixo_468x60.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"
+ sodipodi:docname="BannerWeb_468x60.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs3168">
+ <linearGradient
+ id="linearGradient16494">
+ <stop
+ id="stop16496"
+ offset="0"
+ style="stop-color:#204a87;stop-opacity:1;" />
+ <stop
+ style="stop-color:#3f7bd2;stop-opacity:1;"
+ offset="0.21212122"
+ id="stop16502" />
+ <stop
+ id="stop16498"
+ offset="1"
+ style="stop-color:#204a87;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16494"
+ id="linearGradient3110"
+ gradientUnits="userSpaceOnUse"
+ x1="82.585045"
+ y1="28.112621"
+ x2="92.954216"
+ y2="28.112621" />
+ <linearGradient
+ id="linearGradient16522">
+ <stop
+ id="stop16524"
+ offset="0"
+ style="stop-color:#edda00;stop-opacity:1;" />
+ <stop
+ style="stop-color:#fff491;stop-opacity:1;"
+ offset="0.27272728"
+ id="stop16530" />
+ <stop
+ id="stop16526"
+ offset="1"
+ style="stop-color:#ebd200;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient16522"
+ id="linearGradient3108"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.2174665,0.5700599,-1.3887789,1.8202798,-168.98426,-86.151331)"
+ x1="69.857536"
+ y1="-19.37989"
+ x2="86.576172"
+ y2="-36.549217" />
+ <linearGradient
+ id="linearGradient7336">
+ <stop
+ style="stop-color:#619605;stop-opacity:1;"
+ offset="0"
+ id="stop7338" />
+ <stop
+ id="stop7340"
+ offset="0.19283746"
+ style="stop-color:#76ce0f;stop-opacity:1;" />
+ <stop
+ style="stop-color:#5fae03;stop-opacity:1;"
+ offset="0.80432421"
+ id="stop3298" />
+ <stop
+ style="stop-color:#4f8e05;stop-opacity:1;"
+ offset="1"
+ id="stop7342" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7336"
+ id="linearGradient3106"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.0778077,-1.06702,1.0608838,3.0601075,-77.910514,-151.4351)"
+ x1="11.002116"
+ y1="29.756582"
+ x2="46.998974"
+ y2="29.756582" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath12540">
+ <g
+ style="opacity:0.48559672;fill:url(#radialGradient12556);fill-opacity:1"
+ transform="matrix(0.5602909,0,0,0.5602909,15.06491,-124.7085)"
+ id="g12542">
+ <g
+ style="fill:url(#radialGradient12558);fill-opacity:1"
+ id="g12544">
+ <path
+ style="fill:url(#radialGradient12560);fill-opacity:1"
+ id="path12546"
+ d="M 86.068,0 C 61.466,0 56.851,35.041 70.691,35.041 C 84.529,35.041 110.671,0 86.068,0 z" />
+ <path
+ style="fill:url(#radialGradient12562);fill-opacity:1"
+ id="path12548"
+ d="M 45.217,30.699 C 52.586,31.149 60.671,2.577 46.821,4.374 C 32.976,6.171 37.845,30.249
45.217,30.699 z" />
+ <path
+ style="fill:url(#radialGradient12564);fill-opacity:1"
+ id="path12550"
+ d="M 11.445,48.453 C 16.686,46.146 12.12,23.581 3.208,29.735 C -5.7,35.89 6.204,50.759
11.445,48.453 z" />
+ <path
+ style="fill:url(#radialGradient12566);fill-opacity:1"
+ id="path12552"
+ d="M 26.212,36.642 C 32.451,35.37 32.793,9.778 21.667,14.369 C 10.539,18.961 19.978,37.916
26.212,36.642 L 26.212,36.642 z" />
+ <path
+ style="fill:url(#radialGradient12568);fill-opacity:1"
+ id="path12554"
+ d="M 58.791,93.913 C 59.898,102.367 52.589,106.542 45.431,101.092 C 22.644,83.743 83.16,75.088
79.171,51.386 C 75.86,31.712 15.495,37.769 8.621,68.553 C 3.968,89.374 27.774,118.26 52.614,118.26 C
64.834,118.26 78.929,107.226 81.566,93.248 C 83.58,82.589 57.867,86.86 58.791,93.913 L 58.791,93.913 z" />
+ </g>
+ </g>
+ </clipPath>
+ <filter
+ inkscape:collect="always"
+ x="-0.16053332"
+ width="1.3210666"
+ y="-0.13060836"
+ height="1.2612166"
+ id="filter5301">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="7.7228722"
+ id="feGaussianBlur5303" />
+ </filter>
+ <linearGradient
+ id="linearGradient3272">
+ <stop
+ style="stop-color:#fff38d;stop-opacity:1"
+ offset="0"
+ id="stop3274" />
+ <stop
+ style="stop-color:#f8df00;stop-opacity:1"
+ offset="1"
+ id="stop3276" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3272"
+ id="radialGradient3088"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.927988,0,0,0.5583467,5.8793288,-0.279232)"
+ cx="229.80138"
+ cy="55.809341"
+ fx="229.80138"
+ fy="55.809341"
+ r="43.346268" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2934">
+ <stop
+ style="stop-color:#448c20;stop-opacity:1"
+ offset="0"
+ id="stop2936" />
+ <stop
+ style="stop-color:#2b4e1c;stop-opacity:1"
+ offset="1"
+ id="stop2938" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2934"
+ id="linearGradient3104"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.6785856,0,0,0.6673015,-1.6900519,-5.8691814e-2)"
+ x1="157.5"
+ y1="75.5"
+ x2="157.5"
+ y2="-6.3443646" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3272"
+ id="radialGradient3323"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.927988,0,0,0.5583467,5.8793288,-0.279232)"
+ cx="229.80138"
+ cy="55.809341"
+ fx="229.80138"
+ fy="55.809341"
+ r="43.346268" />
+ <filter
+ inkscape:collect="always"
+ id="filter3808"
+ x="-0.10524917"
+ width="1.2104983"
+ y="-0.17541528"
+ height="1.3508306">
+ <feGaussianBlur
+ inkscape:collect="always"
+ stdDeviation="3.9270271"
+ id="feGaussianBlur3810" />
+ </filter>
+ <mask
+ maskUnits="userSpaceOnUse"
+ id="mask3812">
+ <rect
+
style="opacity:1;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.60000038;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35294118;visibility:visible;display:inline;overflow:visible;filter:url(#filter3808);enable-background:accumulate"
+ id="rect3814"
+ width="89.548119"
+ height="53.72887"
+ x="270.49707"
+ y="3.1832635"
+ ry="6.7933054"
+ transform="matrix(0.3114972,-0.179843,0.179843,0.3114972,-2.8111265,66.957665)" />
+ </mask>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.6192412"
+ inkscape:cx="228"
+ inkscape:cy="40.5"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ inkscape:window-width="1280"
+ inkscape:window-height="727"
+ inkscape:window-x="0"
+ inkscape:window-y="25" />
+ <metadata
+ id="metadata3171">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <rect
+
style="fill:url(#linearGradient3104);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:13.60000038;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.35294118;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect2345"
+ width="467.99323"
+ height="59.992798"
+ x="0.0055432497"
+ y="0.0056523066" />
+ <g
+ id="g2948"
+ transform="matrix(0.7901822,0,0,0.7901822,-41.027663,16.273475)">
+ <g
+ id="g4276"
+ transform="matrix(0.4798818,0,0,0.4798818,80.419926,-10.632001)"
+ style="opacity:0.28395063;fill:#000000;fill-opacity:1;filter:url(#filter5301)">
+ <g
+ id="g4278"
+ style="fill:#000000;fill-opacity:1">
+ <path
+ d="M 86.068,0 C 61.466,0 56.851,35.041 70.691,35.041 C 84.529,35.041 110.671,0 86.068,0 z"
+ id="path4280"
+ style="fill:#000000;fill-opacity:1" />
+ <path
+ d="M 45.217,30.699 C 52.586,31.149 60.671,2.577 46.821,4.374 C 32.976,6.171 37.845,30.249
45.217,30.699 z"
+ id="path4282"
+ style="fill:#000000;fill-opacity:1" />
+ <path
+ d="M 11.445,48.453 C 16.686,46.146 12.12,23.581 3.208,29.735 C -5.7,35.89 6.204,50.759
11.445,48.453 z"
+ id="path4284"
+ style="fill:#000000;fill-opacity:1" />
+ <path
+ d="M 26.212,36.642 C 32.451,35.37 32.793,9.778 21.667,14.369 C 10.539,18.961 19.978,37.916
26.212,36.642 L 26.212,36.642 z"
+ id="path4286"
+ style="fill:#000000;fill-opacity:1" />
+ <path
+ d="M 58.791,93.913 C 59.898,102.367 52.589,106.542 45.431,101.092 C 22.644,83.743 83.16,75.088
79.171,51.386 C 75.86,31.712 15.495,37.769 8.621,68.553 C 3.968,89.374 27.774,118.26 52.614,118.26 C
64.834,118.26 78.929,107.226 81.566,93.248 C 83.58,82.589 57.867,86.86 58.791,93.913 L 58.791,93.913 z"
+ id="path4288"
+ style="fill:#000000;fill-opacity:1" />
+ </g>
+ </g>
+ <g
+ transform="matrix(0.8564868,0,0,0.8564868,67.51703,96.17918)"
+ clip-path="url(#clipPath12540)"
+ id="g12534">
+ <path
+
style="fill:url(#linearGradient3106);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.52627635;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
+ d="M -23.244211,-108.13843 C -1.92169,-137.95153 57.7376,-129.54765 84.46937,-145.48078 L
111.09999,-68.66506 C 86.55992,-49.855935 28.62911,-61.88891 3.386405,-31.322718 L -23.244211,-108.13843 z"
+ id="path6459"
+ sodipodi:nodetypes="ccccc" />
+ <path
+
style="fill:url(#linearGradient3108);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.77875161;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ d="M 33.962827,-113.06496 C 48.102324,-106.03931 61.316049,-103.107 73.938718,-102.78807 C
67.678501,-87.349757 58.299494,-78.641409 48.902182,-69.972551 C 34.131969,-76.99176 20.808194,-80.978039
9.0012083,-81.783898 C 16.459572,-94.697855 25.018726,-104.43659 33.962827,-113.06496 z"
+ id="rect7346"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ sodipodi:type="arc"
+
style="fill:url(#linearGradient3110);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.66970444;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="path10004"
+ sodipodi:cx="87.76963"
+ sodipodi:cy="28.112621"
+ sodipodi:rx="4.6845822"
+ sodipodi:ry="4.6845822"
+ d="M 92.454213,28.112621 A 4.6845822,4.6845822 0 1 1 83.085048,28.112621 A 4.6845822,4.6845822 0
1 1 92.454213,28.112621 z"
+ transform="matrix(2.6182273,-0.5740627,0.8681029,2.504033,-211.52392,-111.90753)" />
+ <path
+
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.77875185px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 49.203125,-96.421875 C 46.812956,-96.426096 44.187105,-96.14886 41.6875,-95.625 C
37.20577,-94.685731 32.891826,-92.918949 30.184016,-90.019049 C 30.288931,-89.382832 30.577324,-88.647235
30.872117,-88.068913 C 33.066806,-90.921212 37.452193,-92.945836 42.109375,-93.921875 C 46.854606,-94.916367
51.937884,-94.84898 55.171875,-93.921875 C 54.928503,-94.575012 54.694306,-95.22815 54.411354,-95.881287 C
52.833834,-96.212054 51.106606,-96.418513 49.203125,-96.421875 z"
+ id="path15173"
+ sodipodi:nodetypes="csccsccc" />
+ </g>
+ </g>
+ <g
+ id="g3302"
+ transform="translate(23.467782,-6.1757322)">
+ <text
+ sodipodi:linespacing="-1.2462537e+11%"
+ id="text6220"
+ y="48.497177"
+ x="187.94789"
+
style="font-size:26.11107445px;font-style:normal;font-weight:normal;line-height:-124625369600%;fill:url(#radialGradient3323);fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ xml:space="preserve"><tspan
+
style="font-weight:bold;letter-spacing:-0.61865866;fill:url(#radialGradient3323);fill-opacity:1;font-family:Trebuchet
MS"
+ y="48.497177"
+ x="187.94789"
+ id="tspan6222"
+ sodipodi:role="line">BRASIL</tspan></text>
+ <g
+ style="fill:none"
+ id="g16326"
+ transform="matrix(0.9397618,0,0,0.9397618,90.837825,-195.60319)">
+ <g
+ style="fill:none"
+ transform="translate(36.912724,109.5415)"
+ id="g16328">
+ <path
+ style="fill:none"
+ id="path16330"
+ d="M 17.718,132.165 L 16.228,135.022 C 15.81,134.648 15.164,134.276 14.291,133.907 C
13.418,133.538 12.668,133.352 12.041,133.352 C 10.077,133.352 8.527,134.02 7.391,135.356 C 6.254,136.693
5.686,138.483 5.686,140.726 C 5.686,142.861 6.243,144.567 7.357,145.843 C 8.471,147.119 9.987,147.758
11.906,147.758 C 13.17,147.758 14.211,147.412 15.03,146.721 L 15.03,142.789 L 12.249,142.789 L 12.249,139.758
L 18.593,139.758 L 18.593,148.716 C 17.746,149.408 16.655,149.947 15.322,150.334 C 13.989,150.721
12.661,150.914 11.341,150.914 C 8.473,150.914 6.199,149.973 4.519,148.09 C 2.839,146.207 1.999,143.721
1.999,140.631 C 1.999,137.539 2.913,135.027 4.742,133.095 C 6.57,131.162 9.031,130.196 12.124,130.196 C
14.316,130.196 16.181,130.852 17.718,132.165 L 17.718,132.165 z" />
+ <path
+ style="fill:none"
+ id="path16332"
+ d="M 34.892,150.853 L 25.173,138.165 L 25.173,150.571 L 21.767,150.571 L 21.767,130.54 L
23.486,130.54 L 32.924,142.634 L 32.924,130.54 L 36.33,130.54 L 36.33,150.853 L 34.892,150.853 L
34.892,150.853 z" />
+ <path
+ style="fill:none"
+ id="path16334"
+ d="M 39.487,140.392 C 39.487,137.54 40.268,135.128 41.832,133.156 C 43.395,131.183
45.484,130.197 48.1,130.197 C 50.981,130.197 53.182,131.09 54.704,132.876 C 56.226,134.662 56.987,137.168
56.987,140.393 C 56.987,143.62 56.192,146.179 54.602,148.075 C 53.01,149.97 50.752,150.917 47.827,150.917 C
45.139,150.917 43.077,149.979 41.641,148.103 C 40.205,146.227 39.488,143.656 39.488,140.394 L 39.487,140.392
z M 43.175,140.392 C 43.175,142.734 43.571,144.547 44.365,145.831 C 45.158,147.116 46.312,147.759
47.826,147.759 C 49.605,147.759 50.962,147.13 51.896,145.872 C 52.832,144.615 53.298,142.788 53.298,140.392 C
53.298,135.7 51.566,133.353 48.099,133.353 C 46.512,133.353 45.294,133.989 44.446,135.259 C 43.597,136.53
43.174,138.241 43.174,140.392 L 43.175,140.392 z" />
+ <path
+ style="fill:none"
+ id="path16336"
+ d="M 78.831,150.571 L 75.393,150.571 L 73.299,139.79 L 69.268,150.853 L 67.987,150.853 L
63.94,139.79 L 61.799,150.571 L 58.361,150.571 L 62.392,130.54 L 64.267,130.54 L 68.626,144.04 L 72.86,130.54
L 74.735,130.54 L 78.829,150.571 L 78.831,150.571 z" />
+ <path
+ style="fill:none"
+ id="path16338"
+ d="M 84.569,133.696 L 84.569,138.384 L 91.007,138.384 L 91.007,141.415 L 84.569,141.415 L
84.569,147.415 L 93.632,147.415 L 93.632,150.571 L 81.006,150.571 L 81.006,130.54 L 93.631,130.54 L
93.631,133.696 L 84.568,133.696 L 84.569,133.696 z" />
+ </g>
+ <path
+ id="path16340"
+ style="fill:none"
+ d="M 134.0342,235.09964 L 134.01848,235.85421 L 136.53373,235.85421 L 136.53373,241.89081 L
137.42979,241.89081 L 137.42979,235.85421 L 139.835,235.85421 L 139.835,235.09964 L 134.0342,235.09964 z M
140.8411,235.09964 L 140.8411,241.89081 L 141.82362,241.89081 L 141.82362,236.35726 L 143.71005,240.66463 L
144.23668,240.67249 L 146.12312,236.35726 L 146.12312,241.89081 L 147.08992,241.89081 L 147.08992,235.09964 L
145.98164,235.09964 L 143.96944,239.76857 L 141.95724,235.09964 L 140.8411,235.09964 z" />
+ </g>
+ <g
+ id="g2492"
+ style="fill:#ffffff;fill-opacity:1"
+ transform="matrix(0.1607777,0,0,0.1607777,-544.24953,-165.14989)">
+ <path
+ id="path2494"
+
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ d="M 4176.3,1214.44 C 4161.19,1214.85 4149.26,1220.28 4140.48,1230.69 C 4131.4,1241.53
4126.83,1256.5 4126.83,1275.6 C 4126.83,1294.64 4131.4,1309.57 4140.48,1320.41 C 4149.61,1331.25
4162.15,1336.66 4178.14,1336.66 C 4194.17,1336.66 4206.74,1331.25 4215.83,1320.41 C 4224.91,1309.57
4229.45,1294.64 4229.45,1275.6 C 4229.45,1256.5 4224.91,1241.53 4215.83,1230.69 C 4206.74,1219.85
4194.17,1214.44 4178.14,1214.44 C 4177.52,1214.44 4176.91,1214.42 4176.3,1214.44 z M 4177.42,1236.44 C
4177.66,1236.43 4177.9,1236.44 4178.14,1236.44 C 4186.02,1236.44 4192.13,1239.85 4196.45,1246.69 C
4200.77,1253.53 4202.95,1263.18 4202.95,1275.6 C 4202.95,1287.96 4200.77,1297.54 4196.45,1304.38 C
4192.13,1311.22 4186.02,1314.66 4178.14,1314.66 C 4170.3,1314.66 4164.24,1311.22 4159.92,1304.38 C
4155.6,1297.54 4153.42,1287.96 4153.42,1275.6 C 4153.42,1263.18 4155.6,1253.53 4159.92,1246.69 C
4164.11,1240.07 4169.93,1236.65 4177.42,1236.44 z" />
+ <path
+ id="path2496"
+
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ d="M 4005.63,1325.61 C 3992.32,1336.79 3972.52,1336.66 3964.27,1336.66 C 3947.66,1336.66
3934.5,1331.19 3924.79,1320.25 C 3915.08,1309.25 3910.23,1294.36 3910.23,1275.58 C 3910.23,1256.59
3915.17,1241.65 3925.06,1230.76 C 3934.95,1219.87 3948.49,1214.43 3965.68,1214.43 C 3972.31,1214.43
3978.66,1215.17 3984.72,1216.64 C 3990.82,1218.11 3996.57,1220.3 4001.95,1223.19 L 3995.03,1243.65 C
3992,1241.99 3988.54,1240.36 3985.32,1239.21 C 3979.84,1237.37 3974.34,1236.45 3968.82,1236.45 C
3958.57,1236.45 3950.67,1239.84 3945.1,1246.62 C 3939.58,1253.36 3936.82,1263.01 3936.82,1275.58 C
3936.82,1288.05 3939.49,1297.68 3944.83,1304.46 C 3950.18,1311.25 3958.21,1314.64 3967.61,1314.64 C
3977.17,1314.64 3983.09,1312.24 3986.24,1309.7 L 3986.24,1289.31 L 3965.54,1289.31 L 3965.54,1268.96 L
4005.63,1268.96" />
+ <path
+ id="path2498"
+
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ d="M 4023.21,1216.56 L 4039.44,1216.56 L 4090.72,1287.36 L 4090.72,1216.56 L 4112.6,1216.56 L
4112.6,1334.37 L 4096.37,1334.37 L 4045.1,1263.57 L 4045.1,1334.37 L 4023.21,1334.37 L 4023.21,1216.56" />
+ <path
+ id="path2500"
+
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ d="M 4246.34,1216.56 L 4279.07,1216.56 L 4301.79,1290.11 L 4324.64,1216.56 L 4352.31,1216.56 L
4364.81,1334.37 L 4340.49,1334.37 L 4332.99,1260.7 L 4310.01,1334.72 L 4293.7,1334.72 L 4270.72,1258.2 L
4263.22,1334.37 L 4238.84,1334.37 L 4251.34,1216.56" />
+ <path
+ id="path2502"
+
style="font-size:148.69999695px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ d="M 4382.36,1216.56 L 4451.77,1216.56 L 4451.77,1239.52 L 4408.08,1239.52 L 4408.08,1263.96 L
4441.67,1263.96 L 4441.67,1284.42 L 4408.08,1284.42 L 4408.08,1311.41 L 4453.24,1311.41 L 4453.24,1334.37 L
4382.36,1334.37 L 4382.36,1216.56" />
+ <text
+ xml:space="preserve"
+ id="text2504"
+
style="font-size:30.68959999px;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ y="1215.74"
+ x="4474.6201"><tspan
+ id="tspan2506"
+ y="1215.74"
+ x="4474.6201"
+ style="fill:#ffffff;fill-opacity:1"><tspan
+ id="tspan2508"
+ style="fill:#ffffff;fill-opacity:1">TM</tspan></tspan></text>
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+
style="font-size:12.41568756px;font-style:normal;font-weight:normal;fill:#eeeeec;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ x="85.184303"
+ y="16.065832"
+ id="text3245"><tspan
+ sodipodi:role="line"
+ id="tspan3247"
+ x="85.184303"
+ y="16.065832">Participe do <tspan
+ style="font-weight:bold"
+ id="tspan3273">IV Fórum</tspan></tspan></text>
+ <text
+ xml:space="preserve"
+
style="font-size:9.3032198px;font-style:normal;font-weight:normal;fill:#eeeeec;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ x="171.88286"
+ y="54.755238"
+ id="text3249"><tspan
+ sodipodi:role="line"
+ x="171.88286"
+ y="54.755238"
+ id="tspan3259">28 á 30 de Setembro, 2007.</tspan></text>
+ <text
+ id="text3261"
+ y="19.24017"
+ x="358.38156"
+
style="font-size:12px;font-style:normal;font-weight:normal;fill:#eeeeec;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream
Vera Sans"
+ xml:space="preserve"><tspan
+ y="19.24017"
+ x="358.38156"
+ id="tspan3263"
+ sodipodi:role="line">Local:</tspan><tspan
+ style="font-weight:bold;fill:#eeeeec"
+ id="tspan3265"
+ y="34.24017"
+ x="358.38156"
+ sodipodi:role="line"> II ENSL</tspan><tspan
+ id="tspan3271"
+ y="49.24017"
+ x="358.38156"
+ sodipodi:role="line"
+ style="font-weight:bold;fill:#eeeeec"> Aracaju / SE</tspan></text>
+ </g>
+</svg>
diff --git a/site-antigo/extra/MaterialDivulgacao/bannerFixo_468x60.png
b/site-antigo/extra/MaterialDivulgacao/bannerFixo_468x60.png
new file mode 100644
index 0000000..9477fb2
Binary files /dev/null and b/site-antigo/extra/MaterialDivulgacao/bannerFixo_468x60.png differ
diff --git a/site-antigo/extra/PaginasAmigas/gnome-br-120x35.png
b/site-antigo/extra/PaginasAmigas/gnome-br-120x35.png
new file mode 100644
index 0000000..9903df9
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/gnome-br-120x35.png differ
diff --git a/site-antigo/extra/PaginasAmigas/gnome-br-171x50.png
b/site-antigo/extra/PaginasAmigas/gnome-br-171x50.png
new file mode 100644
index 0000000..4d64da4
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/gnome-br-171x50.png differ
diff --git a/site-antigo/extra/PaginasAmigas/gnome-br-274x80.png
b/site-antigo/extra/PaginasAmigas/gnome-br-274x80.png
new file mode 100644
index 0000000..83c7cc3
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/gnome-br-274x80.png differ
diff --git a/site-antigo/extra/PaginasAmigas/gnome_80x15-3.png
b/site-antigo/extra/PaginasAmigas/gnome_80x15-3.png
new file mode 100644
index 0000000..bd969b2
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/gnome_80x15-3.png differ
diff --git a/site-antigo/extra/PaginasAmigas/made_for_gnome_88x31.png
b/site-antigo/extra/PaginasAmigas/made_for_gnome_88x31.png
new file mode 100644
index 0000000..02aecf7
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/made_for_gnome_88x31.png differ
diff --git a/site-antigo/extra/PaginasAmigas/made_with_gnome_88x31.png
b/site-antigo/extra/PaginasAmigas/made_with_gnome_88x31.png
new file mode 100644
index 0000000..0e27962
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/made_with_gnome_88x31.png differ
diff --git a/site-antigo/extra/PaginasAmigas/revista-espirito-livre.jpg
b/site-antigo/extra/PaginasAmigas/revista-espirito-livre.jpg
new file mode 100644
index 0000000..1463b41
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/revista-espirito-livre.jpg differ
diff --git a/site-antigo/extra/PaginasAmigas/training-tecnologia.jpg
b/site-antigo/extra/PaginasAmigas/training-tecnologia.jpg
new file mode 100644
index 0000000..447e532
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/training-tecnologia.jpg differ
diff --git a/site-antigo/extra/PaginasAmigas/yata-technology.png
b/site-antigo/extra/PaginasAmigas/yata-technology.png
new file mode 100644
index 0000000..5790e8c
Binary files /dev/null and b/site-antigo/extra/PaginasAmigas/yata-technology.png differ
diff --git a/site-antigo/extra/ProjetoGrafico/GnomeBR.ico b/site-antigo/extra/ProjetoGrafico/GnomeBR.ico
new file mode 100644
index 0000000..d1c2656
Binary files /dev/null and b/site-antigo/extra/ProjetoGrafico/GnomeBR.ico differ
diff --git a/site-antigo/extra/ProjetoGrafico/prototype.js b/site-antigo/extra/ProjetoGrafico/prototype.js
new file mode 100644
index 0000000..a3f21ac
--- /dev/null
+++ b/site-antigo/extra/ProjetoGrafico/prototype.js
@@ -0,0 +1,3277 @@
+/* Prototype JavaScript framework, version 1.5.1.1
+ * (c) 2005-2007 Sam Stephenson
+ *
+ * Prototype is freely distributable under the terms of an MIT-style license.
+ * For details, see the Prototype web site: http://www.prototypejs.org/
+ *
+/*--------------------------------------------------------------------------*/
+
+var Prototype = {
+ Version: '1.5.1.1',
+
+ Browser: {
+ IE: !!(window.attachEvent && !window.opera),
+ Opera: !!window.opera,
+ WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
+ Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1
+ },
+
+ BrowserFeatures: {
+ XPath: !!document.evaluate,
+ ElementExtensions: !!window.HTMLElement,
+ SpecificElementExtensions:
+ (document.createElement('div').__proto__ !==
+ document.createElement('form').__proto__)
+ },
+
+ ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
+ JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
+
+ emptyFunction: function() { },
+ K: function(x) { return x }
+}
+
+var Class = {
+ create: function() {
+ return function() {
+ this.initialize.apply(this, arguments);
+ }
+ }
+}
+
+var Abstract = new Object();
+
+Object.extend = function(destination, source) {
+ for (var property in source) {
+ destination[property] = source[property];
+ }
+ return destination;
+}
+
+Object.extend(Object, {
+ inspect: function(object) {
+ try {
+ if (object === undefined) return 'undefined';
+ if (object === null) return 'null';
+ return object.inspect ? object.inspect() : object.toString();
+ } catch (e) {
+ if (e instanceof RangeError) return '...';
+ throw e;
+ }
+ },
+
+ toJSON: function(object) {
+ var type = typeof object;
+ switch(type) {
+ case 'undefined':
+ case 'function':
+ case 'unknown': return;
+ case 'boolean': return object.toString();
+ }
+ if (object === null) return 'null';
+ if (object.toJSON) return object.toJSON();
+ if (object.ownerDocument === document) return;
+ var results = [];
+ for (var property in object) {
+ var value = Object.toJSON(object[property]);
+ if (value !== undefined)
+ results.push(property.toJSON() + ': ' + value);
+ }
+ return '{' + results.join(', ') + '}';
+ },
+
+ keys: function(object) {
+ var keys = [];
+ for (var property in object)
+ keys.push(property);
+ return keys;
+ },
+
+ values: function(object) {
+ var values = [];
+ for (var property in object)
+ values.push(object[property]);
+ return values;
+ },
+
+ clone: function(object) {
+ return Object.extend({}, object);
+ }
+});
+
+Function.prototype.bind = function() {
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function() {
+ return __method.apply(object, args.concat($A(arguments)));
+ }
+}
+
+Function.prototype.bindAsEventListener = function(object) {
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function(event) {
+ return __method.apply(object, [event || window.event].concat(args));
+ }
+}
+
+Object.extend(Number.prototype, {
+ toColorPart: function() {
+ return this.toPaddedString(2, 16);
+ },
+
+ succ: function() {
+ return this + 1;
+ },
+
+ times: function(iterator) {
+ $R(0, this, true).each(iterator);
+ return this;
+ },
+
+ toPaddedString: function(length, radix) {
+ var string = this.toString(radix || 10);
+ return '0'.times(length - string.length) + string;
+ },
+
+ toJSON: function() {
+ return isFinite(this) ? this.toString() : 'null';
+ }
+});
+
+Date.prototype.toJSON = function() {
+ return '"' + this.getFullYear() + '-' +
+ (this.getMonth() + 1).toPaddedString(2) + '-' +
+ this.getDate().toPaddedString(2) + 'T' +
+ this.getHours().toPaddedString(2) + ':' +
+ this.getMinutes().toPaddedString(2) + ':' +
+ this.getSeconds().toPaddedString(2) + '"';
+};
+
+var Try = {
+ these: function() {
+ var returnValue;
+
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ var lambda = arguments[i];
+ try {
+ returnValue = lambda();
+ break;
+ } catch (e) {}
+ }
+
+ return returnValue;
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+var PeriodicalExecuter = Class.create();
+PeriodicalExecuter.prototype = {
+ initialize: function(callback, frequency) {
+ this.callback = callback;
+ this.frequency = frequency;
+ this.currentlyExecuting = false;
+
+ this.registerCallback();
+ },
+
+ registerCallback: function() {
+ this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+ },
+
+ stop: function() {
+ if (!this.timer) return;
+ clearInterval(this.timer);
+ this.timer = null;
+ },
+
+ onTimerEvent: function() {
+ if (!this.currentlyExecuting) {
+ try {
+ this.currentlyExecuting = true;
+ this.callback(this);
+ } finally {
+ this.currentlyExecuting = false;
+ }
+ }
+ }
+}
+Object.extend(String, {
+ interpret: function(value) {
+ return value == null ? '' : String(value);
+ },
+ specialChar: {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '\\': '\\\\'
+ }
+});
+
+Object.extend(String.prototype, {
+ gsub: function(pattern, replacement) {
+ var result = '', source = this, match;
+ replacement = arguments.callee.prepareReplacement(replacement);
+
+ while (source.length > 0) {
+ if (match = source.match(pattern)) {
+ result += source.slice(0, match.index);
+ result += String.interpret(replacement(match));
+ source = source.slice(match.index + match[0].length);
+ } else {
+ result += source, source = '';
+ }
+ }
+ return result;
+ },
+
+ sub: function(pattern, replacement, count) {
+ replacement = this.gsub.prepareReplacement(replacement);
+ count = count === undefined ? 1 : count;
+
+ return this.gsub(pattern, function(match) {
+ if (--count < 0) return match[0];
+ return replacement(match);
+ });
+ },
+
+ scan: function(pattern, iterator) {
+ this.gsub(pattern, iterator);
+ return this;
+ },
+
+ truncate: function(length, truncation) {
+ length = length || 30;
+ truncation = truncation === undefined ? '...' : truncation;
+ return this.length > length ?
+ this.slice(0, length - truncation.length) + truncation : this;
+ },
+
+ strip: function() {
+ return this.replace(/^\s+/, '').replace(/\s+$/, '');
+ },
+
+ stripTags: function() {
+ return this.replace(/<\/?[^>]+>/gi, '');
+ },
+
+ stripScripts: function() {
+ return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
+ },
+
+ extractScripts: function() {
+ var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
+ var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+ return (this.match(matchAll) || []).map(function(scriptTag) {
+ return (scriptTag.match(matchOne) || ['', ''])[1];
+ });
+ },
+
+ evalScripts: function() {
+ return this.extractScripts().map(function(script) { return eval(script) });
+ },
+
+ escapeHTML: function() {
+ var self = arguments.callee;
+ self.text.data = this;
+ return self.div.innerHTML;
+ },
+
+ unescapeHTML: function() {
+ var div = document.createElement('div');
+ div.innerHTML = this.stripTags();
+ return div.childNodes[0] ? (div.childNodes.length > 1 ?
+ $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
+ div.childNodes[0].nodeValue) : '';
+ },
+
+ toQueryParams: function(separator) {
+ var match = this.strip().match(/([^?#]*)(#.*)?$/);
+ if (!match) return {};
+
+ return match[1].split(separator || '&').inject({}, function(hash, pair) {
+ if ((pair = pair.split('='))[0]) {
+ var key = decodeURIComponent(pair.shift());
+ var value = pair.length > 1 ? pair.join('=') : pair[0];
+ if (value != undefined) value = decodeURIComponent(value);
+
+ if (key in hash) {
+ if (hash[key].constructor != Array) hash[key] = [hash[key]];
+ hash[key].push(value);
+ }
+ else hash[key] = value;
+ }
+ return hash;
+ });
+ },
+
+ toArray: function() {
+ return this.split('');
+ },
+
+ succ: function() {
+ return this.slice(0, this.length - 1) +
+ String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+ },
+
+ times: function(count) {
+ var result = '';
+ for (var i = 0; i < count; i++) result += this;
+ return result;
+ },
+
+ camelize: function() {
+ var parts = this.split('-'), len = parts.length;
+ if (len == 1) return parts[0];
+
+ var camelized = this.charAt(0) == '-'
+ ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
+ : parts[0];
+
+ for (var i = 1; i < len; i++)
+ camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
+
+ return camelized;
+ },
+
+ capitalize: function() {
+ return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+ },
+
+ underscore: function() {
+ return this.gsub(/::/,
'/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
+ },
+
+ dasherize: function() {
+ return this.gsub(/_/,'-');
+ },
+
+ inspect: function(useDoubleQuotes) {
+ var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
+ var character = String.specialChar[match[0]];
+ return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
+ });
+ if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
+ return "'" + escapedString.replace(/'/g, '\\\'') + "'";
+ },
+
+ toJSON: function() {
+ return this.inspect(true);
+ },
+
+ unfilterJSON: function(filter) {
+ return this.sub(filter || Prototype.JSONFilter, '#{1}');
+ },
+
+ isJSON: function() {
+ var str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
+ return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
+ },
+
+ evalJSON: function(sanitize) {
+ var json = this.unfilterJSON();
+ try {
+ if (!sanitize || json.isJSON()) return eval('(' + json + ')');
+ } catch (e) { }
+ throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
+ },
+
+ include: function(pattern) {
+ return this.indexOf(pattern) > -1;
+ },
+
+ startsWith: function(pattern) {
+ return this.indexOf(pattern) === 0;
+ },
+
+ endsWith: function(pattern) {
+ var d = this.length - pattern.length;
+ return d >= 0 && this.lastIndexOf(pattern) === d;
+ },
+
+ empty: function() {
+ return this == '';
+ },
+
+ blank: function() {
+ return /^\s*$/.test(this);
+ }
+});
+
+if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
+ escapeHTML: function() {
+ return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
+ },
+ unescapeHTML: function() {
+ return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
+ }
+});
+
+String.prototype.gsub.prepareReplacement = function(replacement) {
+ if (typeof replacement == 'function') return replacement;
+ var template = new Template(replacement);
+ return function(match) { return template.evaluate(match) };
+}
+
+String.prototype.parseQuery = String.prototype.toQueryParams;
+
+Object.extend(String.prototype.escapeHTML, {
+ div: document.createElement('div'),
+ text: document.createTextNode('')
+});
+
+with (String.prototype.escapeHTML) div.appendChild(text);
+
+var Template = Class.create();
+Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
+Template.prototype = {
+ initialize: function(template, pattern) {
+ this.template = template.toString();
+ this.pattern = pattern || Template.Pattern;
+ },
+
+ evaluate: function(object) {
+ return this.template.gsub(this.pattern, function(match) {
+ var before = match[1];
+ if (before == '\\') return match[2];
+ return before + String.interpret(object[match[3]]);
+ });
+ }
+}
+
+var $break = {}, $continue = new Error('"throw $continue" is deprecated, use "return" instead');
+
+var Enumerable = {
+ each: function(iterator) {
+ var index = 0;
+ try {
+ this._each(function(value) {
+ iterator(value, index++);
+ });
+ } catch (e) {
+ if (e != $break) throw e;
+ }
+ return this;
+ },
+
+ eachSlice: function(number, iterator) {
+ var index = -number, slices = [], array = this.toArray();
+ while ((index += number) < array.length)
+ slices.push(array.slice(index, index+number));
+ return slices.map(iterator);
+ },
+
+ all: function(iterator) {
+ var result = true;
+ this.each(function(value, index) {
+ result = result && !!(iterator || Prototype.K)(value, index);
+ if (!result) throw $break;
+ });
+ return result;
+ },
+
+ any: function(iterator) {
+ var result = false;
+ this.each(function(value, index) {
+ if (result = !!(iterator || Prototype.K)(value, index))
+ throw $break;
+ });
+ return result;
+ },
+
+ collect: function(iterator) {
+ var results = [];
+ this.each(function(value, index) {
+ results.push((iterator || Prototype.K)(value, index));
+ });
+ return results;
+ },
+
+ detect: function(iterator) {
+ var result;
+ this.each(function(value, index) {
+ if (iterator(value, index)) {
+ result = value;
+ throw $break;
+ }
+ });
+ return result;
+ },
+
+ findAll: function(iterator) {
+ var results = [];
+ this.each(function(value, index) {
+ if (iterator(value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ grep: function(pattern, iterator) {
+ var results = [];
+ this.each(function(value, index) {
+ var stringValue = value.toString();
+ if (stringValue.match(pattern))
+ results.push((iterator || Prototype.K)(value, index));
+ })
+ return results;
+ },
+
+ include: function(object) {
+ var found = false;
+ this.each(function(value) {
+ if (value == object) {
+ found = true;
+ throw $break;
+ }
+ });
+ return found;
+ },
+
+ inGroupsOf: function(number, fillWith) {
+ fillWith = fillWith === undefined ? null : fillWith;
+ return this.eachSlice(number, function(slice) {
+ while(slice.length < number) slice.push(fillWith);
+ return slice;
+ });
+ },
+
+ inject: function(memo, iterator) {
+ this.each(function(value, index) {
+ memo = iterator(memo, value, index);
+ });
+ return memo;
+ },
+
+ invoke: function(method) {
+ var args = $A(arguments).slice(1);
+ return this.map(function(value) {
+ return value[method].apply(value, args);
+ });
+ },
+
+ max: function(iterator) {
+ var result;
+ this.each(function(value, index) {
+ value = (iterator || Prototype.K)(value, index);
+ if (result == undefined || value >= result)
+ result = value;
+ });
+ return result;
+ },
+
+ min: function(iterator) {
+ var result;
+ this.each(function(value, index) {
+ value = (iterator || Prototype.K)(value, index);
+ if (result == undefined || value < result)
+ result = value;
+ });
+ return result;
+ },
+
+ partition: function(iterator) {
+ var trues = [], falses = [];
+ this.each(function(value, index) {
+ ((iterator || Prototype.K)(value, index) ?
+ trues : falses).push(value);
+ });
+ return [trues, falses];
+ },
+
+ pluck: function(property) {
+ var results = [];
+ this.each(function(value, index) {
+ results.push(value[property]);
+ });
+ return results;
+ },
+
+ reject: function(iterator) {
+ var results = [];
+ this.each(function(value, index) {
+ if (!iterator(value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ sortBy: function(iterator) {
+ return this.map(function(value, index) {
+ return {value: value, criteria: iterator(value, index)};
+ }).sort(function(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a < b ? -1 : a > b ? 1 : 0;
+ }).pluck('value');
+ },
+
+ toArray: function() {
+ return this.map();
+ },
+
+ zip: function() {
+ var iterator = Prototype.K, args = $A(arguments);
+ if (typeof args.last() == 'function')
+ iterator = args.pop();
+
+ var collections = [this].concat(args).map($A);
+ return this.map(function(value, index) {
+ return iterator(collections.pluck(index));
+ });
+ },
+
+ size: function() {
+ return this.toArray().length;
+ },
+
+ inspect: function() {
+ return '#<Enumerable:' + this.toArray().inspect() + '>';
+ }
+}
+
+Object.extend(Enumerable, {
+ map: Enumerable.collect,
+ find: Enumerable.detect,
+ select: Enumerable.findAll,
+ member: Enumerable.include,
+ entries: Enumerable.toArray
+});
+var $A = Array.from = function(iterable) {
+ if (!iterable) return [];
+ if (iterable.toArray) {
+ return iterable.toArray();
+ } else {
+ var results = [];
+ for (var i = 0, length = iterable.length; i < length; i++)
+ results.push(iterable[i]);
+ return results;
+ }
+}
+
+if (Prototype.Browser.WebKit) {
+ $A = Array.from = function(iterable) {
+ if (!iterable) return [];
+ if (!(typeof iterable == 'function' && iterable == '[object NodeList]') &&
+ iterable.toArray) {
+ return iterable.toArray();
+ } else {
+ var results = [];
+ for (var i = 0, length = iterable.length; i < length; i++)
+ results.push(iterable[i]);
+ return results;
+ }
+ }
+}
+
+Object.extend(Array.prototype, Enumerable);
+
+if (!Array.prototype._reverse)
+ Array.prototype._reverse = Array.prototype.reverse;
+
+Object.extend(Array.prototype, {
+ _each: function(iterator) {
+ for (var i = 0, length = this.length; i < length; i++)
+ iterator(this[i]);
+ },
+
+ clear: function() {
+ this.length = 0;
+ return this;
+ },
+
+ first: function() {
+ return this[0];
+ },
+
+ last: function() {
+ return this[this.length - 1];
+ },
+
+ compact: function() {
+ return this.select(function(value) {
+ return value != null;
+ });
+ },
+
+ flatten: function() {
+ return this.inject([], function(array, value) {
+ return array.concat(value && value.constructor == Array ?
+ value.flatten() : [value]);
+ });
+ },
+
+ without: function() {
+ var values = $A(arguments);
+ return this.select(function(value) {
+ return !values.include(value);
+ });
+ },
+
+ indexOf: function(object) {
+ for (var i = 0, length = this.length; i < length; i++)
+ if (this[i] == object) return i;
+ return -1;
+ },
+
+ reverse: function(inline) {
+ return (inline !== false ? this : this.toArray())._reverse();
+ },
+
+ reduce: function() {
+ return this.length > 1 ? this : this[0];
+ },
+
+ uniq: function(sorted) {
+ return this.inject([], function(array, value, index) {
+ if (0 == index || (sorted ? array.last() != value : !array.include(value)))
+ array.push(value);
+ return array;
+ });
+ },
+
+ clone: function() {
+ return [].concat(this);
+ },
+
+ size: function() {
+ return this.length;
+ },
+
+ inspect: function() {
+ return '[' + this.map(Object.inspect).join(', ') + ']';
+ },
+
+ toJSON: function() {
+ var results = [];
+ this.each(function(object) {
+ var value = Object.toJSON(object);
+ if (value !== undefined) results.push(value);
+ });
+ return '[' + results.join(', ') + ']';
+ }
+});
+
+Array.prototype.toArray = Array.prototype.clone;
+
+function $w(string) {
+ string = string.strip();
+ return string ? string.split(/\s+/) : [];
+}
+
+if (Prototype.Browser.Opera){
+ Array.prototype.concat = function() {
+ var array = [];
+ for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ if (arguments[i].constructor == Array) {
+ for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
+ array.push(arguments[i][j]);
+ } else {
+ array.push(arguments[i]);
+ }
+ }
+ return array;
+ }
+}
+var Hash = function(object) {
+ if (object instanceof Hash) this.merge(object);
+ else Object.extend(this, object || {});
+};
+
+Object.extend(Hash, {
+ toQueryString: function(obj) {
+ var parts = [];
+ parts.add = arguments.callee.addPair;
+
+ this.prototype._each.call(obj, function(pair) {
+ if (!pair.key) return;
+ var value = pair.value;
+
+ if (value && typeof value == 'object') {
+ if (value.constructor == Array) value.each(function(value) {
+ parts.add(pair.key, value);
+ });
+ return;
+ }
+ parts.add(pair.key, value);
+ });
+
+ return parts.join('&');
+ },
+
+ toJSON: function(object) {
+ var results = [];
+ this.prototype._each.call(object, function(pair) {
+ var value = Object.toJSON(pair.value);
+ if (value !== undefined) results.push(pair.key.toJSON() + ': ' + value);
+ });
+ return '{' + results.join(', ') + '}';
+ }
+});
+
+Hash.toQueryString.addPair = function(key, value, prefix) {
+ key = encodeURIComponent(key);
+ if (value === undefined) this.push(key);
+ else this.push(key + '=' + (value == null ? '' : encodeURIComponent(value)));
+}
+
+Object.extend(Hash.prototype, Enumerable);
+Object.extend(Hash.prototype, {
+ _each: function(iterator) {
+ for (var key in this) {
+ var value = this[key];
+ if (value && value == Hash.prototype[key]) continue;
+
+ var pair = [key, value];
+ pair.key = key;
+ pair.value = value;
+ iterator(pair);
+ }
+ },
+
+ keys: function() {
+ return this.pluck('key');
+ },
+
+ values: function() {
+ return this.pluck('value');
+ },
+
+ merge: function(hash) {
+ return $H(hash).inject(this, function(mergedHash, pair) {
+ mergedHash[pair.key] = pair.value;
+ return mergedHash;
+ });
+ },
+
+ remove: function() {
+ var result;
+ for(var i = 0, length = arguments.length; i < length; i++) {
+ var value = this[arguments[i]];
+ if (value !== undefined){
+ if (result === undefined) result = value;
+ else {
+ if (result.constructor != Array) result = [result];
+ result.push(value)
+ }
+ }
+ delete this[arguments[i]];
+ }
+ return result;
+ },
+
+ toQueryString: function() {
+ return Hash.toQueryString(this);
+ },
+
+ inspect: function() {
+ return '#<Hash:{' + this.map(function(pair) {
+ return pair.map(Object.inspect).join(': ');
+ }).join(', ') + '}>';
+ },
+
+ toJSON: function() {
+ return Hash.toJSON(this);
+ }
+});
+
+function $H(object) {
+ if (object instanceof Hash) return object;
+ return new Hash(object);
+};
+
+// Safari iterates over shadowed properties
+if (function() {
+ var i = 0, Test = function(value) { this.key = value };
+ Test.prototype.key = 'foo';
+ for (var property in new Test('bar')) i++;
+ return i > 1;
+}()) Hash.prototype._each = function(iterator) {
+ var cache = [];
+ for (var key in this) {
+ var value = this[key];
+ if ((value && value == Hash.prototype[key]) || cache.include(key)) continue;
+ cache.push(key);
+ var pair = [key, value];
+ pair.key = key;
+ pair.value = value;
+ iterator(pair);
+ }
+};
+ObjectRange = Class.create();
+Object.extend(ObjectRange.prototype, Enumerable);
+Object.extend(ObjectRange.prototype, {
+ initialize: function(start, end, exclusive) {
+ this.start = start;
+ this.end = end;
+ this.exclusive = exclusive;
+ },
+
+ _each: function(iterator) {
+ var value = this.start;
+ while (this.include(value)) {
+ iterator(value);
+ value = value.succ();
+ }
+ },
+
+ include: function(value) {
+ if (value < this.start)
+ return false;
+ if (this.exclusive)
+ return value < this.end;
+ return value <= this.end;
+ }
+});
+
+var $R = function(start, end, exclusive) {
+ return new ObjectRange(start, end, exclusive);
+}
+
+var Ajax = {
+ getTransport: function() {
+ return Try.these(
+ function() {return new XMLHttpRequest()},
+ function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+ function() {return new ActiveXObject('Microsoft.XMLHTTP')}
+ ) || false;
+ },
+
+ activeRequestCount: 0
+}
+
+Ajax.Responders = {
+ responders: [],
+
+ _each: function(iterator) {
+ this.responders._each(iterator);
+ },
+
+ register: function(responder) {
+ if (!this.include(responder))
+ this.responders.push(responder);
+ },
+
+ unregister: function(responder) {
+ this.responders = this.responders.without(responder);
+ },
+
+ dispatch: function(callback, request, transport, json) {
+ this.each(function(responder) {
+ if (typeof responder[callback] == 'function') {
+ try {
+ responder[callback].apply(responder, [request, transport, json]);
+ } catch (e) {}
+ }
+ });
+ }
+};
+
+Object.extend(Ajax.Responders, Enumerable);
+
+Ajax.Responders.register({
+ onCreate: function() {
+ Ajax.activeRequestCount++;
+ },
+ onComplete: function() {
+ Ajax.activeRequestCount--;
+ }
+});
+
+Ajax.Base = function() {};
+Ajax.Base.prototype = {
+ setOptions: function(options) {
+ this.options = {
+ method: 'post',
+ asynchronous: true,
+ contentType: 'application/x-www-form-urlencoded',
+ encoding: 'UTF-8',
+ parameters: ''
+ }
+ Object.extend(this.options, options || {});
+
+ this.options.method = this.options.method.toLowerCase();
+ if (typeof this.options.parameters == 'string')
+ this.options.parameters = this.options.parameters.toQueryParams();
+ }
+}
+
+Ajax.Request = Class.create();
+Ajax.Request.Events =
+ ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
+ _complete: false,
+
+ initialize: function(url, options) {
+ this.transport = Ajax.getTransport();
+ this.setOptions(options);
+ this.request(url);
+ },
+
+ request: function(url) {
+ this.url = url;
+ this.method = this.options.method;
+ var params = Object.clone(this.options.parameters);
+
+ if (!['get', 'post'].include(this.method)) {
+ // simulate other verbs over post
+ params['_method'] = this.method;
+ this.method = 'post';
+ }
+
+ this.parameters = params;
+
+ if (params = Hash.toQueryString(params)) {
+ // when GET, append parameters to URL
+ if (this.method == 'get')
+ this.url += (this.url.include('?') ? '&' : '?') + params;
+ else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
+ params += '&_=';
+ }
+
+ try {
+ if (this.options.onCreate) this.options.onCreate(this.transport);
+ Ajax.Responders.dispatch('onCreate', this, this.transport);
+
+ this.transport.open(this.method.toUpperCase(), this.url,
+ this.options.asynchronous);
+
+ if (this.options.asynchronous)
+ setTimeout(function() { this.respondToReadyState(1) }.bind(this), 10);
+
+ this.transport.onreadystatechange = this.onStateChange.bind(this);
+ this.setRequestHeaders();
+
+ this.body = this.method == 'post' ? (this.options.postBody || params) : null;
+ this.transport.send(this.body);
+
+ /* Force Firefox to handle ready state 4 for synchronous requests */
+ if (!this.options.asynchronous && this.transport.overrideMimeType)
+ this.onStateChange();
+
+ }
+ catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ onStateChange: function() {
+ var readyState = this.transport.readyState;
+ if (readyState > 1 && !((readyState == 4) && this._complete))
+ this.respondToReadyState(this.transport.readyState);
+ },
+
+ setRequestHeaders: function() {
+ var headers = {
+ 'X-Requested-With': 'XMLHttpRequest',
+ 'X-Prototype-Version': Prototype.Version,
+ 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+ };
+
+ if (this.method == 'post') {
+ headers['Content-type'] = this.options.contentType +
+ (this.options.encoding ? '; charset=' + this.options.encoding : '');
+
+ /* Force "Connection: close" for older Mozilla browsers to work
+ * around a bug where XMLHttpRequest sends an incorrect
+ * Content-length header. See Mozilla Bugzilla #246651.
+ */
+ if (this.transport.overrideMimeType &&
+ (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+ headers['Connection'] = 'close';
+ }
+
+ // user-defined headers
+ if (typeof this.options.requestHeaders == 'object') {
+ var extras = this.options.requestHeaders;
+
+ if (typeof extras.push == 'function')
+ for (var i = 0, length = extras.length; i < length; i += 2)
+ headers[extras[i]] = extras[i+1];
+ else
+ $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+ }
+
+ for (var name in headers)
+ this.transport.setRequestHeader(name, headers[name]);
+ },
+
+ success: function() {
+ return !this.transport.status
+ || (this.transport.status >= 200 && this.transport.status < 300);
+ },
+
+ respondToReadyState: function(readyState) {
+ var state = Ajax.Request.Events[readyState];
+ var transport = this.transport, json = this.evalJSON();
+
+ if (state == 'Complete') {
+ try {
+ this._complete = true;
+ (this.options['on' + this.transport.status]
+ || this.options['on' + (this.success() ? 'Success' : 'Failure')]
+ || Prototype.emptyFunction)(transport, json);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ var contentType = this.getHeader('Content-type');
+ if (contentType && contentType.strip().
+ match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))
+ this.evalResponse();
+ }
+
+ try {
+ (this.options['on' + state] || Prototype.emptyFunction)(transport, json);
+ Ajax.Responders.dispatch('on' + state, this, transport, json);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ if (state == 'Complete') {
+ // avoid memory leak in MSIE: clean up
+ this.transport.onreadystatechange = Prototype.emptyFunction;
+ }
+ },
+
+ getHeader: function(name) {
+ try {
+ return this.transport.getResponseHeader(name);
+ } catch (e) { return null }
+ },
+
+ evalJSON: function() {
+ try {
+ var json = this.getHeader('X-JSON');
+ return json ? json.evalJSON() : null;
+ } catch (e) { return null }
+ },
+
+ evalResponse: function() {
+ try {
+ return eval((this.transport.responseText || '').unfilterJSON());
+ } catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ dispatchException: function(exception) {
+ (this.options.onException || Prototype.emptyFunction)(this, exception);
+ Ajax.Responders.dispatch('onException', this, exception);
+ }
+});
+
+Ajax.Updater = Class.create();
+
+Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
+ initialize: function(container, url, options) {
+ this.container = {
+ success: (container.success || container),
+ failure: (container.failure || (container.success ? null : container))
+ }
+
+ this.transport = Ajax.getTransport();
+ this.setOptions(options);
+
+ var onComplete = this.options.onComplete || Prototype.emptyFunction;
+ this.options.onComplete = (function(transport, param) {
+ this.updateContent();
+ onComplete(transport, param);
+ }).bind(this);
+
+ this.request(url);
+ },
+
+ updateContent: function() {
+ var receiver = this.container[this.success() ? 'success' : 'failure'];
+ var response = this.transport.responseText;
+
+ if (!this.options.evalScripts) response = response.stripScripts();
+
+ if (receiver = $(receiver)) {
+ if (this.options.insertion)
+ new this.options.insertion(receiver, response);
+ else
+ receiver.update(response);
+ }
+
+ if (this.success()) {
+ if (this.onComplete)
+ setTimeout(this.onComplete.bind(this), 10);
+ }
+ }
+});
+
+Ajax.PeriodicalUpdater = Class.create();
+Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {
+ initialize: function(container, url, options) {
+ this.setOptions(options);
+ this.onComplete = this.options.onComplete;
+
+ this.frequency = (this.options.frequency || 2);
+ this.decay = (this.options.decay || 1);
+
+ this.updater = {};
+ this.container = container;
+ this.url = url;
+
+ this.start();
+ },
+
+ start: function() {
+ this.options.onComplete = this.updateComplete.bind(this);
+ this.onTimerEvent();
+ },
+
+ stop: function() {
+ this.updater.options.onComplete = undefined;
+ clearTimeout(this.timer);
+ (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
+ },
+
+ updateComplete: function(request) {
+ if (this.options.decay) {
+ this.decay = (request.responseText == this.lastText ?
+ this.decay * this.options.decay : 1);
+
+ this.lastText = request.responseText;
+ }
+ this.timer = setTimeout(this.onTimerEvent.bind(this),
+ this.decay * this.frequency * 1000);
+ },
+
+ onTimerEvent: function() {
+ this.updater = new Ajax.Updater(this.container, this.url, this.options);
+ }
+});
+function $(element) {
+ if (arguments.length > 1) {
+ for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+ elements.push($(arguments[i]));
+ return elements;
+ }
+ if (typeof element == 'string')
+ element = document.getElementById(element);
+ return Element.extend(element);
+}
+
+if (Prototype.BrowserFeatures.XPath) {
+ document._getElementsByXPath = function(expression, parentElement) {
+ var results = [];
+ var query = document.evaluate(expression, $(parentElement) || document,
+ null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ for (var i = 0, length = query.snapshotLength; i < length; i++)
+ results.push(query.snapshotItem(i));
+ return results;
+ };
+
+ document.getElementsByClassName = function(className, parentElement) {
+ var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
+ return document._getElementsByXPath(q, parentElement);
+ }
+
+} else document.getElementsByClassName = function(className, parentElement) {
+ var children = ($(parentElement) || document.body).getElementsByTagName('*');
+ var elements = [], child, pattern = new RegExp("(^|\\s)" + className + "(\\s|$)");
+ for (var i = 0, length = children.length; i < length; i++) {
+ child = children[i];
+ var elementClassName = child.className;
+ if (elementClassName.length == 0) continue;
+ if (elementClassName == className || elementClassName.match(pattern))
+ elements.push(Element.extend(child));
+ }
+ return elements;
+};
+
+/*--------------------------------------------------------------------------*/
+
+if (!window.Element) var Element = {};
+
+Element.extend = function(element) {
+ var F = Prototype.BrowserFeatures;
+ if (!element || !element.tagName || element.nodeType == 3 ||
+ element._extended || F.SpecificElementExtensions || element == window)
+ return element;
+
+ var methods = {}, tagName = element.tagName, cache = Element.extend.cache,
+ T = Element.Methods.ByTag;
+
+ // extend methods for all tags (Safari doesn't need this)
+ if (!F.ElementExtensions) {
+ Object.extend(methods, Element.Methods),
+ Object.extend(methods, Element.Methods.Simulated);
+ }
+
+ // extend methods for specific tags
+ if (T[tagName]) Object.extend(methods, T[tagName]);
+
+ for (var property in methods) {
+ var value = methods[property];
+ if (typeof value == 'function' && !(property in element))
+ element[property] = cache.findOrStore(value);
+ }
+
+ element._extended = Prototype.emptyFunction;
+ return element;
+};
+
+Element.extend.cache = {
+ findOrStore: function(value) {
+ return this[value] = this[value] || function() {
+ return value.apply(null, [this].concat($A(arguments)));
+ }
+ }
+};
+
+Element.Methods = {
+ visible: function(element) {
+ return $(element).style.display != 'none';
+ },
+
+ toggle: function(element) {
+ element = $(element);
+ Element[Element.visible(element) ? 'hide' : 'show'](element);
+ return element;
+ },
+
+ hide: function(element) {
+ $(element).style.display = 'none';
+ return element;
+ },
+
+ show: function(element) {
+ $(element).style.display = '';
+ return element;
+ },
+
+ remove: function(element) {
+ element = $(element);
+ element.parentNode.removeChild(element);
+ return element;
+ },
+
+ update: function(element, html) {
+ html = typeof html == 'undefined' ? '' : html.toString();
+ $(element).innerHTML = html.stripScripts();
+ setTimeout(function() {html.evalScripts()}, 10);
+ return element;
+ },
+
+ replace: function(element, html) {
+ element = $(element);
+ html = typeof html == 'undefined' ? '' : html.toString();
+ if (element.outerHTML) {
+ element.outerHTML = html.stripScripts();
+ } else {
+ var range = element.ownerDocument.createRange();
+ range.selectNodeContents(element);
+ element.parentNode.replaceChild(
+ range.createContextualFragment(html.stripScripts()), element);
+ }
+ setTimeout(function() {html.evalScripts()}, 10);
+ return element;
+ },
+
+ inspect: function(element) {
+ element = $(element);
+ var result = '<' + element.tagName.toLowerCase();
+ $H({'id': 'id', 'className': 'class'}).each(function(pair) {
+ var property = pair.first(), attribute = pair.last();
+ var value = (element[property] || '').toString();
+ if (value) result += ' ' + attribute + '=' + value.inspect(true);
+ });
+ return result + '>';
+ },
+
+ recursivelyCollect: function(element, property) {
+ element = $(element);
+ var elements = [];
+ while (element = element[property])
+ if (element.nodeType == 1)
+ elements.push(Element.extend(element));
+ return elements;
+ },
+
+ ancestors: function(element) {
+ return $(element).recursivelyCollect('parentNode');
+ },
+
+ descendants: function(element) {
+ return $A($(element).getElementsByTagName('*')).each(Element.extend);
+ },
+
+ firstDescendant: function(element) {
+ element = $(element).firstChild;
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ return $(element);
+ },
+
+ immediateDescendants: function(element) {
+ if (!(element = $(element).firstChild)) return [];
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ if (element) return [element].concat($(element).nextSiblings());
+ return [];
+ },
+
+ previousSiblings: function(element) {
+ return $(element).recursivelyCollect('previousSibling');
+ },
+
+ nextSiblings: function(element) {
+ return $(element).recursivelyCollect('nextSibling');
+ },
+
+ siblings: function(element) {
+ element = $(element);
+ return element.previousSiblings().reverse().concat(element.nextSiblings());
+ },
+
+ match: function(element, selector) {
+ if (typeof selector == 'string')
+ selector = new Selector(selector);
+ return selector.match($(element));
+ },
+
+ up: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(element.parentNode);
+ var ancestors = element.ancestors();
+ return expression ? Selector.findElement(ancestors, expression, index) :
+ ancestors[index || 0];
+ },
+
+ down: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return element.firstDescendant();
+ var descendants = element.descendants();
+ return expression ? Selector.findElement(descendants, expression, index) :
+ descendants[index || 0];
+ },
+
+ previous: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
+ var previousSiblings = element.previousSiblings();
+ return expression ? Selector.findElement(previousSiblings, expression, index) :
+ previousSiblings[index || 0];
+ },
+
+ next: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
+ var nextSiblings = element.nextSiblings();
+ return expression ? Selector.findElement(nextSiblings, expression, index) :
+ nextSiblings[index || 0];
+ },
+
+ getElementsBySelector: function() {
+ var args = $A(arguments), element = $(args.shift());
+ return Selector.findChildElements(element, args);
+ },
+
+ getElementsByClassName: function(element, className) {
+ return document.getElementsByClassName(className, element);
+ },
+
+ readAttribute: function(element, name) {
+ element = $(element);
+ if (Prototype.Browser.IE) {
+ if (!element.attributes) return null;
+ var t = Element._attributeTranslations;
+ if (t.values[name]) return t.values[name](element, name);
+ if (t.names[name]) name = t.names[name];
+ var attribute = element.attributes[name];
+ return attribute ? attribute.nodeValue : null;
+ }
+ return element.getAttribute(name);
+ },
+
+ getHeight: function(element) {
+ return $(element).getDimensions().height;
+ },
+
+ getWidth: function(element) {
+ return $(element).getDimensions().width;
+ },
+
+ classNames: function(element) {
+ return new Element.ClassNames(element);
+ },
+
+ hasClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ var elementClassName = element.className;
+ if (elementClassName.length == 0) return false;
+ if (elementClassName == className ||
+ elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
+ return true;
+ return false;
+ },
+
+ addClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ Element.classNames(element).add(className);
+ return element;
+ },
+
+ removeClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ Element.classNames(element).remove(className);
+ return element;
+ },
+
+ toggleClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ Element.classNames(element)[element.hasClassName(className) ? 'remove' : 'add'](className);
+ return element;
+ },
+
+ observe: function() {
+ Event.observe.apply(Event, arguments);
+ return $A(arguments).first();
+ },
+
+ stopObserving: function() {
+ Event.stopObserving.apply(Event, arguments);
+ return $A(arguments).first();
+ },
+
+ // removes whitespace-only text node children
+ cleanWhitespace: function(element) {
+ element = $(element);
+ var node = element.firstChild;
+ while (node) {
+ var nextNode = node.nextSibling;
+ if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+ element.removeChild(node);
+ node = nextNode;
+ }
+ return element;
+ },
+
+ empty: function(element) {
+ return $(element).innerHTML.blank();
+ },
+
+ descendantOf: function(element, ancestor) {
+ element = $(element), ancestor = $(ancestor);
+ while (element = element.parentNode)
+ if (element == ancestor) return true;
+ return false;
+ },
+
+ scrollTo: function(element) {
+ element = $(element);
+ var pos = Position.cumulativeOffset(element);
+ window.scrollTo(pos[0], pos[1]);
+ return element;
+ },
+
+ getStyle: function(element, style) {
+ element = $(element);
+ style = style == 'float' ? 'cssFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value) {
+ var css = document.defaultView.getComputedStyle(element, null);
+ value = css ? css[style] : null;
+ }
+ if (style == 'opacity') return value ? parseFloat(value) : 1.0;
+ return value == 'auto' ? null : value;
+ },
+
+ getOpacity: function(element) {
+ return $(element).getStyle('opacity');
+ },
+
+ setStyle: function(element, styles, camelized) {
+ element = $(element);
+ var elementStyle = element.style;
+
+ for (var property in styles)
+ if (property == 'opacity') element.setOpacity(styles[property])
+ else
+ elementStyle[(property == 'float' || property == 'cssFloat') ?
+ (elementStyle.styleFloat === undefined ? 'cssFloat' : 'styleFloat') :
+ (camelized ? property : property.camelize())] = styles[property];
+
+ return element;
+ },
+
+ setOpacity: function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+ return element;
+ },
+
+ getDimensions: function(element) {
+ element = $(element);
+ var display = $(element).getStyle('display');
+ if (display != 'none' && display != null) // Safari bug
+ return {width: element.offsetWidth, height: element.offsetHeight};
+
+ // All *Width and *Height properties give 0 on elements with display none,
+ // so enable the element temporarily
+ var els = element.style;
+ var originalVisibility = els.visibility;
+ var originalPosition = els.position;
+ var originalDisplay = els.display;
+ els.visibility = 'hidden';
+ els.position = 'absolute';
+ els.display = 'block';
+ var originalWidth = element.clientWidth;
+ var originalHeight = element.clientHeight;
+ els.display = originalDisplay;
+ els.position = originalPosition;
+ els.visibility = originalVisibility;
+ return {width: originalWidth, height: originalHeight};
+ },
+
+ makePositioned: function(element) {
+ element = $(element);
+ var pos = Element.getStyle(element, 'position');
+ if (pos == 'static' || !pos) {
+ element._madePositioned = true;
+ element.style.position = 'relative';
+ // Opera returns the offset relative to the positioning context, when an
+ // element is position relative but top and left have not been defined
+ if (window.opera) {
+ element.style.top = 0;
+ element.style.left = 0;
+ }
+ }
+ return element;
+ },
+
+ undoPositioned: function(element) {
+ element = $(element);
+ if (element._madePositioned) {
+ element._madePositioned = undefined;
+ element.style.position =
+ element.style.top =
+ element.style.left =
+ element.style.bottom =
+ element.style.right = '';
+ }
+ return element;
+ },
+
+ makeClipping: function(element) {
+ element = $(element);
+ if (element._overflow) return element;
+ element._overflow = element.style.overflow || 'auto';
+ if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
+ element.style.overflow = 'hidden';
+ return element;
+ },
+
+ undoClipping: function(element) {
+ element = $(element);
+ if (!element._overflow) return element;
+ element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
+ element._overflow = null;
+ return element;
+ }
+};
+
+Object.extend(Element.Methods, {
+ childOf: Element.Methods.descendantOf,
+ childElements: Element.Methods.immediateDescendants
+});
+
+if (Prototype.Browser.Opera) {
+ Element.Methods._getStyle = Element.Methods.getStyle;
+ Element.Methods.getStyle = function(element, style) {
+ switch(style) {
+ case 'left':
+ case 'top':
+ case 'right':
+ case 'bottom':
+ if (Element._getStyle(element, 'position') == 'static') return null;
+ default: return Element._getStyle(element, style);
+ }
+ };
+}
+else if (Prototype.Browser.IE) {
+ Element.Methods.getStyle = function(element, style) {
+ element = $(element);
+ style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value && element.currentStyle) value = element.currentStyle[style];
+
+ if (style == 'opacity') {
+ if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+ if (value[1]) return parseFloat(value[1]) / 100;
+ return 1.0;
+ }
+
+ if (value == 'auto') {
+ if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
+ return element['offset'+style.capitalize()] + 'px';
+ return null;
+ }
+ return value;
+ };
+
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ var filter = element.getStyle('filter'), style = element.style;
+ if (value == 1 || value === '') {
+ style.filter = filter.replace(/alpha\([^\)]*\)/gi,'');
+ return element;
+ } else if (value < 0.00001) value = 0;
+ style.filter = filter.replace(/alpha\([^\)]*\)/gi, '') +
+ 'alpha(opacity=' + (value * 100) + ')';
+ return element;
+ };
+
+ // IE is missing .innerHTML support for TABLE-related elements
+ Element.Methods.update = function(element, html) {
+ element = $(element);
+ html = typeof html == 'undefined' ? '' : html.toString();
+ var tagName = element.tagName.toUpperCase();
+ if (['THEAD','TBODY','TR','TD'].include(tagName)) {
+ var div = document.createElement('div');
+ switch (tagName) {
+ case 'THEAD':
+ case 'TBODY':
+ div.innerHTML = '<table><tbody>' + html.stripScripts() + '</tbody></table>';
+ depth = 2;
+ break;
+ case 'TR':
+ div.innerHTML = '<table><tbody><tr>' + html.stripScripts() + '</tr></tbody></table>';
+ depth = 3;
+ break;
+ case 'TD':
+ div.innerHTML = '<table><tbody><tr><td>' + html.stripScripts() + '</td></tr></tbody></table>';
+ depth = 4;
+ }
+ $A(element.childNodes).each(function(node) { element.removeChild(node) });
+ depth.times(function() { div = div.firstChild });
+ $A(div.childNodes).each(function(node) { element.appendChild(node) });
+ } else {
+ element.innerHTML = html.stripScripts();
+ }
+ setTimeout(function() { html.evalScripts() }, 10);
+ return element;
+ }
+}
+else if (Prototype.Browser.Gecko) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1) ? 0.999999 :
+ (value === '') ? '' : (value < 0.00001) ? 0 : value;
+ return element;
+ };
+}
+
+Element._attributeTranslations = {
+ names: {
+ colspan: "colSpan",
+ rowspan: "rowSpan",
+ valign: "vAlign",
+ datetime: "dateTime",
+ accesskey: "accessKey",
+ tabindex: "tabIndex",
+ enctype: "encType",
+ maxlength: "maxLength",
+ readonly: "readOnly",
+ longdesc: "longDesc"
+ },
+ values: {
+ _getAttr: function(element, attribute) {
+ return element.getAttribute(attribute, 2);
+ },
+ _flag: function(element, attribute) {
+ return $(element).hasAttribute(attribute) ? attribute : null;
+ },
+ style: function(element) {
+ return element.style.cssText.toLowerCase();
+ },
+ title: function(element) {
+ var node = element.getAttributeNode('title');
+ return node.specified ? node.nodeValue : null;
+ }
+ }
+};
+
+(function() {
+ Object.extend(this, {
+ href: this._getAttr,
+ src: this._getAttr,
+ type: this._getAttr,
+ disabled: this._flag,
+ checked: this._flag,
+ readonly: this._flag,
+ multiple: this._flag
+ });
+}).call(Element._attributeTranslations.values);
+
+Element.Methods.Simulated = {
+ hasAttribute: function(element, attribute) {
+ var t = Element._attributeTranslations, node;
+ attribute = t.names[attribute] || attribute;
+ node = $(element).getAttributeNode(attribute);
+ return node && node.specified;
+ }
+};
+
+Element.Methods.ByTag = {};
+
+Object.extend(Element, Element.Methods);
+
+if (!Prototype.BrowserFeatures.ElementExtensions &&
+ document.createElement('div').__proto__) {
+ window.HTMLElement = {};
+ window.HTMLElement.prototype = document.createElement('div').__proto__;
+ Prototype.BrowserFeatures.ElementExtensions = true;
+}
+
+Element.hasAttribute = function(element, attribute) {
+ if (element.hasAttribute) return element.hasAttribute(attribute);
+ return Element.Methods.Simulated.hasAttribute(element, attribute);
+};
+
+Element.addMethods = function(methods) {
+ var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
+
+ if (!methods) {
+ Object.extend(Form, Form.Methods);
+ Object.extend(Form.Element, Form.Element.Methods);
+ Object.extend(Element.Methods.ByTag, {
+ "FORM": Object.clone(Form.Methods),
+ "INPUT": Object.clone(Form.Element.Methods),
+ "SELECT": Object.clone(Form.Element.Methods),
+ "TEXTAREA": Object.clone(Form.Element.Methods)
+ });
+ }
+
+ if (arguments.length == 2) {
+ var tagName = methods;
+ methods = arguments[1];
+ }
+
+ if (!tagName) Object.extend(Element.Methods, methods || {});
+ else {
+ if (tagName.constructor == Array) tagName.each(extend);
+ else extend(tagName);
+ }
+
+ function extend(tagName) {
+ tagName = tagName.toUpperCase();
+ if (!Element.Methods.ByTag[tagName])
+ Element.Methods.ByTag[tagName] = {};
+ Object.extend(Element.Methods.ByTag[tagName], methods);
+ }
+
+ function copy(methods, destination, onlyIfAbsent) {
+ onlyIfAbsent = onlyIfAbsent || false;
+ var cache = Element.extend.cache;
+ for (var property in methods) {
+ var value = methods[property];
+ if (!onlyIfAbsent || !(property in destination))
+ destination[property] = cache.findOrStore(value);
+ }
+ }
+
+ function findDOMClass(tagName) {
+ var klass;
+ var trans = {
+ "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
+ "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
+ "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
+ "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
+ "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
+ "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
+ "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
+ "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
+ "FrameSet", "IFRAME": "IFrame"
+ };
+ if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName.capitalize() + 'Element';
+ if (window[klass]) return window[klass];
+
+ window[klass] = {};
+ window[klass].prototype = document.createElement(tagName).__proto__;
+ return window[klass];
+ }
+
+ if (F.ElementExtensions) {
+ copy(Element.Methods, HTMLElement.prototype);
+ copy(Element.Methods.Simulated, HTMLElement.prototype, true);
+ }
+
+ if (F.SpecificElementExtensions) {
+ for (var tag in Element.Methods.ByTag) {
+ var klass = findDOMClass(tag);
+ if (typeof klass == "undefined") continue;
+ copy(T[tag], klass.prototype);
+ }
+ }
+
+ Object.extend(Element, Element.Methods);
+ delete Element.ByTag;
+};
+
+var Toggle = { display: Element.toggle };
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.Insertion = function(adjacency) {
+ this.adjacency = adjacency;
+}
+
+Abstract.Insertion.prototype = {
+ initialize: function(element, content) {
+ this.element = $(element);
+ this.content = content.stripScripts();
+
+ if (this.adjacency && this.element.insertAdjacentHTML) {
+ try {
+ this.element.insertAdjacentHTML(this.adjacency, this.content);
+ } catch (e) {
+ var tagName = this.element.tagName.toUpperCase();
+ if (['TBODY', 'TR'].include(tagName)) {
+ this.insertContent(this.contentFromAnonymousTable());
+ } else {
+ throw e;
+ }
+ }
+ } else {
+ this.range = this.element.ownerDocument.createRange();
+ if (this.initializeRange) this.initializeRange();
+ this.insertContent([this.range.createContextualFragment(this.content)]);
+ }
+
+ setTimeout(function() {content.evalScripts()}, 10);
+ },
+
+ contentFromAnonymousTable: function() {
+ var div = document.createElement('div');
+ div.innerHTML = '<table><tbody>' + this.content + '</tbody></table>';
+ return $A(div.childNodes[0].childNodes[0].childNodes);
+ }
+}
+
+var Insertion = new Object();
+
+Insertion.Before = Class.create();
+Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
+ initializeRange: function() {
+ this.range.setStartBefore(this.element);
+ },
+
+ insertContent: function(fragments) {
+ fragments.each((function(fragment) {
+ this.element.parentNode.insertBefore(fragment, this.element);
+ }).bind(this));
+ }
+});
+
+Insertion.Top = Class.create();
+Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
+ initializeRange: function() {
+ this.range.selectNodeContents(this.element);
+ this.range.collapse(true);
+ },
+
+ insertContent: function(fragments) {
+ fragments.reverse(false).each((function(fragment) {
+ this.element.insertBefore(fragment, this.element.firstChild);
+ }).bind(this));
+ }
+});
+
+Insertion.Bottom = Class.create();
+Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
+ initializeRange: function() {
+ this.range.selectNodeContents(this.element);
+ this.range.collapse(this.element);
+ },
+
+ insertContent: function(fragments) {
+ fragments.each((function(fragment) {
+ this.element.appendChild(fragment);
+ }).bind(this));
+ }
+});
+
+Insertion.After = Class.create();
+Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
+ initializeRange: function() {
+ this.range.setStartAfter(this.element);
+ },
+
+ insertContent: function(fragments) {
+ fragments.each((function(fragment) {
+ this.element.parentNode.insertBefore(fragment,
+ this.element.nextSibling);
+ }).bind(this));
+ }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Element.ClassNames = Class.create();
+Element.ClassNames.prototype = {
+ initialize: function(element) {
+ this.element = $(element);
+ },
+
+ _each: function(iterator) {
+ this.element.className.split(/\s+/).select(function(name) {
+ return name.length > 0;
+ })._each(iterator);
+ },
+
+ set: function(className) {
+ this.element.className = className;
+ },
+
+ add: function(classNameToAdd) {
+ if (this.include(classNameToAdd)) return;
+ this.set($A(this).concat(classNameToAdd).join(' '));
+ },
+
+ remove: function(classNameToRemove) {
+ if (!this.include(classNameToRemove)) return;
+ this.set($A(this).without(classNameToRemove).join(' '));
+ },
+
+ toString: function() {
+ return $A(this).join(' ');
+ }
+};
+
+Object.extend(Element.ClassNames.prototype, Enumerable);
+/* Portions of the Selector class are derived from Jack Slocum’s DomQuery,
+ * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
+ * license. Please see http://www.yui-ext.com/ for more information. */
+
+var Selector = Class.create();
+
+Selector.prototype = {
+ initialize: function(expression) {
+ this.expression = expression.strip();
+ this.compileMatcher();
+ },
+
+ compileMatcher: function() {
+ // Selectors with namespaced attributes can't use the XPath version
+ if (Prototype.BrowserFeatures.XPath && !(/\[[\w-]*?:/).test(this.expression))
+ return this.compileXPathMatcher();
+
+ var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
+ c = Selector.criteria, le, p, m;
+
+ if (Selector._cache[e]) {
+ this.matcher = Selector._cache[e]; return;
+ }
+ this.matcher = ["this.matcher = function(root) {",
+ "var r = root, h = Selector.handlers, c = false, n;"];
+
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ p = ps[i];
+ if (m = e.match(p)) {
+ this.matcher.push(typeof c[i] == 'function' ? c[i](m) :
+ new Template(c[i]).evaluate(m));
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+
+ this.matcher.push("return h.unique(n);\n}");
+ eval(this.matcher.join('\n'));
+ Selector._cache[this.expression] = this.matcher;
+ },
+
+ compileXPathMatcher: function() {
+ var e = this.expression, ps = Selector.patterns,
+ x = Selector.xpath, le, m;
+
+ if (Selector._cache[e]) {
+ this.xpath = Selector._cache[e]; return;
+ }
+
+ this.matcher = ['.//*'];
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ if (m = e.match(ps[i])) {
+ this.matcher.push(typeof x[i] == 'function' ? x[i](m) :
+ new Template(x[i]).evaluate(m));
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+
+ this.xpath = this.matcher.join('');
+ Selector._cache[this.expression] = this.xpath;
+ },
+
+ findElements: function(root) {
+ root = root || document;
+ if (this.xpath) return document._getElementsByXPath(this.xpath, root);
+ return this.matcher(root);
+ },
+
+ match: function(element) {
+ return this.findElements(document).include(element);
+ },
+
+ toString: function() {
+ return this.expression;
+ },
+
+ inspect: function() {
+ return "#<Selector:" + this.expression.inspect() + ">";
+ }
+};
+
+Object.extend(Selector, {
+ _cache: {},
+
+ xpath: {
+ descendant: "//*",
+ child: "/*",
+ adjacent: "/following-sibling::*[1]",
+ laterSibling: '/following-sibling::*',
+ tagName: function(m) {
+ if (m[1] == '*') return '';
+ return "[local-name()='" + m[1].toLowerCase() +
+ "' or local-name()='" + m[1].toUpperCase() + "']";
+ },
+ className: "[contains(concat(' ', @class, ' '), ' #{1} ')]",
+ id: "[@id='#{1}']",
+ attrPresence: "[@#{1}]",
+ attr: function(m) {
+ m[3] = m[5] || m[6];
+ return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
+ },
+ pseudo: function(m) {
+ var h = Selector.xpath.pseudos[m[1]];
+ if (!h) return '';
+ if (typeof h === 'function') return h(m);
+ return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
+ },
+ operators: {
+ '=': "[@#{1}='#{3}']",
+ '!=': "[@#{1}!='#{3}']",
+ '^=': "[starts-with(@#{1}, '#{3}')]",
+ '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
+ '*=': "[contains(@#{1}, '#{3}')]",
+ '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
+ '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
+ },
+ pseudos: {
+ 'first-child': '[not(preceding-sibling::*)]',
+ 'last-child': '[not(following-sibling::*)]',
+ 'only-child': '[not(preceding-sibling::* or following-sibling::*)]',
+ 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]",
+ 'checked': "[@checked]",
+ 'disabled': "[@disabled]",
+ 'enabled': "[not(@disabled)]",
+ 'not': function(m) {
+ var e = m[6], p = Selector.patterns,
+ x = Selector.xpath, le, m, v;
+
+ var exclusion = [];
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in p) {
+ if (m = e.match(p[i])) {
+ v = typeof x[i] == 'function' ? x[i](m) : new Template(x[i]).evaluate(m);
+ exclusion.push("(" + v.substring(1, v.length - 1) + ")");
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+ return "[not(" + exclusion.join(" and ") + ")]";
+ },
+ 'nth-child': function(m) {
+ return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
+ },
+ 'nth-last-child': function(m) {
+ return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
+ },
+ 'nth-of-type': function(m) {
+ return Selector.xpath.pseudos.nth("position() ", m);
+ },
+ 'nth-last-of-type': function(m) {
+ return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
+ },
+ 'first-of-type': function(m) {
+ m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
+ },
+ 'last-of-type': function(m) {
+ m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
+ },
+ 'only-of-type': function(m) {
+ var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
+ },
+ nth: function(fragment, m) {
+ var mm, formula = m[6], predicate;
+ if (formula == 'even') formula = '2n+0';
+ if (formula == 'odd') formula = '2n+1';
+ if (mm = formula.match(/^(\d+)$/)) // digit only
+ return '[' + fragment + "= " + mm[1] + ']';
+ if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+ if (mm[1] == "-") mm[1] = -1;
+ var a = mm[1] ? Number(mm[1]) : 1;
+ var b = mm[2] ? Number(mm[2]) : 0;
+ predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
+ "((#{fragment} - #{b}) div #{a} >= 0)]";
+ return new Template(predicate).evaluate({
+ fragment: fragment, a: a, b: b });
+ }
+ }
+ }
+ },
+
+ criteria: {
+ tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
+ className: 'n = h.className(n, r, "#{1}", c); c = false;',
+ id: 'n = h.id(n, r, "#{1}", c); c = false;',
+ attrPresence: 'n = h.attrPresence(n, r, "#{1}"); c = false;',
+ attr: function(m) {
+ m[3] = (m[5] || m[6]);
+ return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m);
+ },
+ pseudo: function(m) {
+ if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
+ return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
+ },
+ descendant: 'c = "descendant";',
+ child: 'c = "child";',
+ adjacent: 'c = "adjacent";',
+ laterSibling: 'c = "laterSibling";'
+ },
+
+ patterns: {
+ // combinators must be listed first
+ // (and descendant needs to be last combinator)
+ laterSibling: /^\s*~\s*/,
+ child: /^\s*>\s*/,
+ adjacent: /^\s*\+\s*/,
+ descendant: /^\s/,
+
+ // selectors follow
+ tagName: /^\s*(\*|[\w\-]+)(\b|$)?/,
+ id: /^#([\w\-\*]+)(\b|$)/,
+ className: /^\.([\w\-\*]+)(\b|$)/,
+ pseudo:
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|\s|(?=:))/,
+ attrPresence: /^\[([\w]+)\]/,
+ attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\]]*?)\4|([^'"][^\]]*?)))?\]/
+ },
+
+ handlers: {
+ // UTILITY FUNCTIONS
+ // joins two collections
+ concat: function(a, b) {
+ for (var i = 0, node; node = b[i]; i++)
+ a.push(node);
+ return a;
+ },
+
+ // marks an array of nodes for counting
+ mark: function(nodes) {
+ for (var i = 0, node; node = nodes[i]; i++)
+ node._counted = true;
+ return nodes;
+ },
+
+ unmark: function(nodes) {
+ for (var i = 0, node; node = nodes[i]; i++)
+ node._counted = undefined;
+ return nodes;
+ },
+
+ // mark each child node with its position (for nth calls)
+ // "ofType" flag indicates whether we're indexing for nth-of-type
+ // rather than nth-child
+ index: function(parentNode, reverse, ofType) {
+ parentNode._counted = true;
+ if (reverse) {
+ for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
+ node = nodes[i];
+ if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
+ }
+ } else {
+ for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
+ if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
+ }
+ },
+
+ // filters out duplicates and extends all nodes
+ unique: function(nodes) {
+ if (nodes.length == 0) return nodes;
+ var results = [], n;
+ for (var i = 0, l = nodes.length; i < l; i++)
+ if (!(n = nodes[i])._counted) {
+ n._counted = true;
+ results.push(Element.extend(n));
+ }
+ return Selector.handlers.unmark(results);
+ },
+
+ // COMBINATOR FUNCTIONS
+ descendant: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ h.concat(results, node.getElementsByTagName('*'));
+ return results;
+ },
+
+ child: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ for (var j = 0, children = [], child; child = node.childNodes[j]; j++)
+ if (child.nodeType == 1 && child.tagName != '!') results.push(child);
+ }
+ return results;
+ },
+
+ adjacent: function(nodes) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ var next = this.nextElementSibling(node);
+ if (next) results.push(next);
+ }
+ return results;
+ },
+
+ laterSibling: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ h.concat(results, Element.nextSiblings(node));
+ return results;
+ },
+
+ nextElementSibling: function(node) {
+ while (node = node.nextSibling)
+ if (node.nodeType == 1) return node;
+ return null;
+ },
+
+ previousElementSibling: function(node) {
+ while (node = node.previousSibling)
+ if (node.nodeType == 1) return node;
+ return null;
+ },
+
+ // TOKEN FUNCTIONS
+ tagName: function(nodes, root, tagName, combinator) {
+ tagName = tagName.toUpperCase();
+ var results = [], h = Selector.handlers;
+ if (nodes) {
+ if (combinator) {
+ // fastlane for ordinary descendant combinators
+ if (combinator == "descendant") {
+ for (var i = 0, node; node = nodes[i]; i++)
+ h.concat(results, node.getElementsByTagName(tagName));
+ return results;
+ } else nodes = this[combinator](nodes);
+ if (tagName == "*") return nodes;
+ }
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.tagName.toUpperCase() == tagName) results.push(node);
+ return results;
+ } else return root.getElementsByTagName(tagName);
+ },
+
+ id: function(nodes, root, id, combinator) {
+ var targetNode = $(id), h = Selector.handlers;
+ if (!nodes && root == document) return targetNode ? [targetNode] : [];
+ if (nodes) {
+ if (combinator) {
+ if (combinator == 'child') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (targetNode.parentNode == node) return [targetNode];
+ } else if (combinator == 'descendant') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Element.descendantOf(targetNode, node)) return [targetNode];
+ } else if (combinator == 'adjacent') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Selector.handlers.previousElementSibling(targetNode) == node)
+ return [targetNode];
+ } else nodes = h[combinator](nodes);
+ }
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node == targetNode) return [targetNode];
+ return [];
+ }
+ return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
+ },
+
+ className: function(nodes, root, className, combinator) {
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ return Selector.handlers.byClassName(nodes, root, className);
+ },
+
+ byClassName: function(nodes, root, className) {
+ if (!nodes) nodes = Selector.handlers.descendant([root]);
+ var needle = ' ' + className + ' ';
+ for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
+ nodeClassName = node.className;
+ if (nodeClassName.length == 0) continue;
+ if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
+ results.push(node);
+ }
+ return results;
+ },
+
+ attrPresence: function(nodes, root, attr) {
+ var results = [];
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Element.hasAttribute(node, attr)) results.push(node);
+ return results;
+ },
+
+ attr: function(nodes, root, attr, value, operator) {
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ var handler = Selector.operators[operator], results = [];
+ for (var i = 0, node; node = nodes[i]; i++) {
+ var nodeValue = Element.readAttribute(node, attr);
+ if (nodeValue === null) continue;
+ if (handler(nodeValue, value)) results.push(node);
+ }
+ return results;
+ },
+
+ pseudo: function(nodes, name, value, root, combinator) {
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ return Selector.pseudos[name](nodes, value, root);
+ }
+ },
+
+ pseudos: {
+ 'first-child': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ if (Selector.handlers.previousElementSibling(node)) continue;
+ results.push(node);
+ }
+ return results;
+ },
+ 'last-child': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ if (Selector.handlers.nextElementSibling(node)) continue;
+ results.push(node);
+ }
+ return results;
+ },
+ 'only-child': function(nodes, value, root) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
+ results.push(node);
+ return results;
+ },
+ 'nth-child': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root);
+ },
+ 'nth-last-child': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, true);
+ },
+ 'nth-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, false, true);
+ },
+ 'nth-last-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, true, true);
+ },
+ 'first-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, "1", root, false, true);
+ },
+ 'last-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, "1", root, true, true);
+ },
+ 'only-of-type': function(nodes, formula, root) {
+ var p = Selector.pseudos;
+ return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
+ },
+
+ // handles the an+b logic
+ getIndices: function(a, b, total) {
+ if (a == 0) return b > 0 ? [b] : [];
+ return $R(1, total).inject([], function(memo, i) {
+ if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
+ return memo;
+ });
+ },
+
+ // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type
+ nth: function(nodes, formula, root, reverse, ofType) {
+ if (nodes.length == 0) return [];
+ if (formula == 'even') formula = '2n+0';
+ if (formula == 'odd') formula = '2n+1';
+ var h = Selector.handlers, results = [], indexed = [], m;
+ h.mark(nodes);
+ for (var i = 0, node; node = nodes[i]; i++) {
+ if (!node.parentNode._counted) {
+ h.index(node.parentNode, reverse, ofType);
+ indexed.push(node.parentNode);
+ }
+ }
+ if (formula.match(/^\d+$/)) { // just a number
+ formula = Number(formula);
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.nodeIndex == formula) results.push(node);
+ } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+ if (m[1] == "-") m[1] = -1;
+ var a = m[1] ? Number(m[1]) : 1;
+ var b = m[2] ? Number(m[2]) : 0;
+ var indices = Selector.pseudos.getIndices(a, b, nodes.length);
+ for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
+ for (var j = 0; j < l; j++)
+ if (node.nodeIndex == indices[j]) results.push(node);
+ }
+ }
+ h.unmark(nodes);
+ h.unmark(indexed);
+ return results;
+ },
+
+ 'empty': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ // IE treats comments as element nodes
+ if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue;
+ results.push(node);
+ }
+ return results;
+ },
+
+ 'not': function(nodes, selector, root) {
+ var h = Selector.handlers, selectorType, m;
+ var exclusions = new Selector(selector).findElements(root);
+ h.mark(exclusions);
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!node._counted) results.push(node);
+ h.unmark(exclusions);
+ return results;
+ },
+
+ 'enabled': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!node.disabled) results.push(node);
+ return results;
+ },
+
+ 'disabled': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (node.disabled) results.push(node);
+ return results;
+ },
+
+ 'checked': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (node.checked) results.push(node);
+ return results;
+ }
+ },
+
+ operators: {
+ '=': function(nv, v) { return nv == v; },
+ '!=': function(nv, v) { return nv != v; },
+ '^=': function(nv, v) { return nv.startsWith(v); },
+ '$=': function(nv, v) { return nv.endsWith(v); },
+ '*=': function(nv, v) { return nv.include(v); },
+ '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
+ '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); }
+ },
+
+ matchElements: function(elements, expression) {
+ var matches = new Selector(expression).findElements(), h = Selector.handlers;
+ h.mark(matches);
+ for (var i = 0, results = [], element; element = elements[i]; i++)
+ if (element._counted) results.push(element);
+ h.unmark(matches);
+ return results;
+ },
+
+ findElement: function(elements, expression, index) {
+ if (typeof expression == 'number') {
+ index = expression; expression = false;
+ }
+ return Selector.matchElements(elements, expression || '*')[index || 0];
+ },
+
+ findChildElements: function(element, expressions) {
+ var exprs = expressions.join(','), expressions = [];
+ exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
+ expressions.push(m[1].strip());
+ });
+ var results = [], h = Selector.handlers;
+ for (var i = 0, l = expressions.length, selector; i < l; i++) {
+ selector = new Selector(expressions[i].strip());
+ h.concat(results, selector.findElements(element));
+ }
+ return (l > 1) ? h.unique(results) : results;
+ }
+});
+
+function $$() {
+ return Selector.findChildElements(document, $A(arguments));
+}
+var Form = {
+ reset: function(form) {
+ $(form).reset();
+ return form;
+ },
+
+ serializeElements: function(elements, getHash) {
+ var data = elements.inject({}, function(result, element) {
+ if (!element.disabled && element.name) {
+ var key = element.name, value = $(element).getValue();
+ if (value != null) {
+ if (key in result) {
+ if (result[key].constructor != Array) result[key] = [result[key]];
+ result[key].push(value);
+ }
+ else result[key] = value;
+ }
+ }
+ return result;
+ });
+
+ return getHash ? data : Hash.toQueryString(data);
+ }
+};
+
+Form.Methods = {
+ serialize: function(form, getHash) {
+ return Form.serializeElements(Form.getElements(form), getHash);
+ },
+
+ getElements: function(form) {
+ return $A($(form).getElementsByTagName('*')).inject([],
+ function(elements, child) {
+ if (Form.Element.Serializers[child.tagName.toLowerCase()])
+ elements.push(Element.extend(child));
+ return elements;
+ }
+ );
+ },
+
+ getInputs: function(form, typeName, name) {
+ form = $(form);
+ var inputs = form.getElementsByTagName('input');
+
+ if (!typeName && !name) return $A(inputs).map(Element.extend);
+
+ for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
+ var input = inputs[i];
+ if ((typeName && input.type != typeName) || (name && input.name != name))
+ continue;
+ matchingInputs.push(Element.extend(input));
+ }
+
+ return matchingInputs;
+ },
+
+ disable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('disable');
+ return form;
+ },
+
+ enable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('enable');
+ return form;
+ },
+
+ findFirstElement: function(form) {
+ return $(form).getElements().find(function(element) {
+ return element.type != 'hidden' && !element.disabled &&
+ ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
+ });
+ },
+
+ focusFirstElement: function(form) {
+ form = $(form);
+ form.findFirstElement().activate();
+ return form;
+ },
+
+ request: function(form, options) {
+ form = $(form), options = Object.clone(options || {});
+
+ var params = options.parameters;
+ options.parameters = form.serialize(true);
+
+ if (params) {
+ if (typeof params == 'string') params = params.toQueryParams();
+ Object.extend(options.parameters, params);
+ }
+
+ if (form.hasAttribute('method') && !options.method)
+ options.method = form.method;
+
+ return new Ajax.Request(form.readAttribute('action'), options);
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element = {
+ focus: function(element) {
+ $(element).focus();
+ return element;
+ },
+
+ select: function(element) {
+ $(element).select();
+ return element;
+ }
+}
+
+Form.Element.Methods = {
+ serialize: function(element) {
+ element = $(element);
+ if (!element.disabled && element.name) {
+ var value = element.getValue();
+ if (value != undefined) {
+ var pair = {};
+ pair[element.name] = value;
+ return Hash.toQueryString(pair);
+ }
+ }
+ return '';
+ },
+
+ getValue: function(element) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ return Form.Element.Serializers[method](element);
+ },
+
+ clear: function(element) {
+ $(element).value = '';
+ return element;
+ },
+
+ present: function(element) {
+ return $(element).value != '';
+ },
+
+ activate: function(element) {
+ element = $(element);
+ try {
+ element.focus();
+ if (element.select && (element.tagName.toLowerCase() != 'input' ||
+ !['button', 'reset', 'submit'].include(element.type)))
+ element.select();
+ } catch (e) {}
+ return element;
+ },
+
+ disable: function(element) {
+ element = $(element);
+ element.blur();
+ element.disabled = true;
+ return element;
+ },
+
+ enable: function(element) {
+ element = $(element);
+ element.disabled = false;
+ return element;
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+var Field = Form.Element;
+var $F = Form.Element.Methods.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element.Serializers = {
+ input: function(element) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ return Form.Element.Serializers.inputSelector(element);
+ default:
+ return Form.Element.Serializers.textarea(element);
+ }
+ },
+
+ inputSelector: function(element) {
+ return element.checked ? element.value : null;
+ },
+
+ textarea: function(element) {
+ return element.value;
+ },
+
+ select: function(element) {
+ return this[element.type == 'select-one' ?
+ 'selectOne' : 'selectMany'](element);
+ },
+
+ selectOne: function(element) {
+ var index = element.selectedIndex;
+ return index >= 0 ? this.optionValue(element.options[index]) : null;
+ },
+
+ selectMany: function(element) {
+ var values, length = element.length;
+ if (!length) return null;
+
+ for (var i = 0, values = []; i < length; i++) {
+ var opt = element.options[i];
+ if (opt.selected) values.push(this.optionValue(opt));
+ }
+ return values;
+ },
+
+ optionValue: function(opt) {
+ // extend element because hasAttribute may not be native
+ return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.TimedObserver = function() {}
+Abstract.TimedObserver.prototype = {
+ initialize: function(element, frequency, callback) {
+ this.frequency = frequency;
+ this.element = $(element);
+ this.callback = callback;
+
+ this.lastValue = this.getValue();
+ this.registerCallback();
+ },
+
+ registerCallback: function() {
+ setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+ },
+
+ onTimerEvent: function() {
+ var value = this.getValue();
+ var changed = ('string' == typeof this.lastValue && 'string' == typeof value
+ ? this.lastValue != value : String(this.lastValue) != String(value));
+ if (changed) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ }
+}
+
+Form.Element.Observer = Class.create();
+Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.Observer = Class.create();
+Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = function() {}
+Abstract.EventObserver.prototype = {
+ initialize: function(element, callback) {
+ this.element = $(element);
+ this.callback = callback;
+
+ this.lastValue = this.getValue();
+ if (this.element.tagName.toLowerCase() == 'form')
+ this.registerFormCallbacks();
+ else
+ this.registerCallback(this.element);
+ },
+
+ onElementEvent: function() {
+ var value = this.getValue();
+ if (this.lastValue != value) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ },
+
+ registerFormCallbacks: function() {
+ Form.getElements(this.element).each(this.registerCallback.bind(this));
+ },
+
+ registerCallback: function(element) {
+ if (element.type) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ Event.observe(element, 'click', this.onElementEvent.bind(this));
+ break;
+ default:
+ Event.observe(element, 'change', this.onElementEvent.bind(this));
+ break;
+ }
+ }
+ }
+}
+
+Form.Element.EventObserver = Class.create();
+Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.EventObserver = Class.create();
+Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+if (!window.Event) {
+ var Event = new Object();
+}
+
+Object.extend(Event, {
+ KEY_BACKSPACE: 8,
+ KEY_TAB: 9,
+ KEY_RETURN: 13,
+ KEY_ESC: 27,
+ KEY_LEFT: 37,
+ KEY_UP: 38,
+ KEY_RIGHT: 39,
+ KEY_DOWN: 40,
+ KEY_DELETE: 46,
+ KEY_HOME: 36,
+ KEY_END: 35,
+ KEY_PAGEUP: 33,
+ KEY_PAGEDOWN: 34,
+
+ element: function(event) {
+ return $(event.target || event.srcElement);
+ },
+
+ isLeftClick: function(event) {
+ return (((event.which) && (event.which == 1)) ||
+ ((event.button) && (event.button == 1)));
+ },
+
+ pointerX: function(event) {
+ return event.pageX || (event.clientX +
+ (document.documentElement.scrollLeft || document.body.scrollLeft));
+ },
+
+ pointerY: function(event) {
+ return event.pageY || (event.clientY +
+ (document.documentElement.scrollTop || document.body.scrollTop));
+ },
+
+ stop: function(event) {
+ if (event.preventDefault) {
+ event.preventDefault();
+ event.stopPropagation();
+ } else {
+ event.returnValue = false;
+ event.cancelBubble = true;
+ }
+ },
+
+ // find the first node with the given tagName, starting from the
+ // node the event was triggered on; traverses the DOM upwards
+ findElement: function(event, tagName) {
+ var element = Event.element(event);
+ while (element.parentNode && (!element.tagName ||
+ (element.tagName.toUpperCase() != tagName.toUpperCase())))
+ element = element.parentNode;
+ return element;
+ },
+
+ observers: false,
+
+ _observeAndCache: function(element, name, observer, useCapture) {
+ if (!this.observers) this.observers = [];
+ if (element.addEventListener) {
+ this.observers.push([element, name, observer, useCapture]);
+ element.addEventListener(name, observer, useCapture);
+ } else if (element.attachEvent) {
+ this.observers.push([element, name, observer, useCapture]);
+ element.attachEvent('on' + name, observer);
+ }
+ },
+
+ unloadCache: function() {
+ if (!Event.observers) return;
+ for (var i = 0, length = Event.observers.length; i < length; i++) {
+ Event.stopObserving.apply(this, Event.observers[i]);
+ Event.observers[i][0] = null;
+ }
+ Event.observers = false;
+ },
+
+ observe: function(element, name, observer, useCapture) {
+ element = $(element);
+ useCapture = useCapture || false;
+
+ if (name == 'keypress' &&
+ (Prototype.Browser.WebKit || element.attachEvent))
+ name = 'keydown';
+
+ Event._observeAndCache(element, name, observer, useCapture);
+ },
+
+ stopObserving: function(element, name, observer, useCapture) {
+ element = $(element);
+ useCapture = useCapture || false;
+
+ if (name == 'keypress' &&
+ (Prototype.Browser.WebKit || element.attachEvent))
+ name = 'keydown';
+
+ if (element.removeEventListener) {
+ element.removeEventListener(name, observer, useCapture);
+ } else if (element.detachEvent) {
+ try {
+ element.detachEvent('on' + name, observer);
+ } catch (e) {}
+ }
+ }
+});
+
+/* prevent memory leaks in IE */
+if (Prototype.Browser.IE)
+ Event.observe(window, 'unload', Event.unloadCache, false);
+var Position = {
+ // set to true if needed, warning: firefox performance problems
+ // NOT neeeded for page scrolling, only if draggable contained in
+ // scrollable elements
+ includeScrollOffsets: false,
+
+ // must be called before calling withinIncludingScrolloffset, every time the
+ // page is scrolled
+ prepare: function() {
+ this.deltaX = window.pageXOffset
+ || document.documentElement.scrollLeft
+ || document.body.scrollLeft
+ || 0;
+ this.deltaY = window.pageYOffset
+ || document.documentElement.scrollTop
+ || document.body.scrollTop
+ || 0;
+ },
+
+ realOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.scrollTop || 0;
+ valueL += element.scrollLeft || 0;
+ element = element.parentNode;
+ } while (element);
+ return [valueL, valueT];
+ },
+
+ cumulativeOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ } while (element);
+ return [valueL, valueT];
+ },
+
+ positionedOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ if (element) {
+ if(element.tagName=='BODY') break;
+ var p = Element.getStyle(element, 'position');
+ if (p == 'relative' || p == 'absolute') break;
+ }
+ } while (element);
+ return [valueL, valueT];
+ },
+
+ offsetParent: function(element) {
+ if (element.offsetParent) return element.offsetParent;
+ if (element == document.body) return element;
+
+ while ((element = element.parentNode) && element != document.body)
+ if (Element.getStyle(element, 'position') != 'static')
+ return element;
+
+ return document.body;
+ },
+
+ // caches x/y coordinate pair to use with overlap
+ within: function(element, x, y) {
+ if (this.includeScrollOffsets)
+ return this.withinIncludingScrolloffsets(element, x, y);
+ this.xcomp = x;
+ this.ycomp = y;
+ this.offset = this.cumulativeOffset(element);
+
+ return (y >= this.offset[1] &&
+ y < this.offset[1] + element.offsetHeight &&
+ x >= this.offset[0] &&
+ x < this.offset[0] + element.offsetWidth);
+ },
+
+ withinIncludingScrolloffsets: function(element, x, y) {
+ var offsetcache = this.realOffset(element);
+
+ this.xcomp = x + offsetcache[0] - this.deltaX;
+ this.ycomp = y + offsetcache[1] - this.deltaY;
+ this.offset = this.cumulativeOffset(element);
+
+ return (this.ycomp >= this.offset[1] &&
+ this.ycomp < this.offset[1] + element.offsetHeight &&
+ this.xcomp >= this.offset[0] &&
+ this.xcomp < this.offset[0] + element.offsetWidth);
+ },
+
+ // within must be called directly before
+ overlap: function(mode, element) {
+ if (!mode) return 0;
+ if (mode == 'vertical')
+ return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+ element.offsetHeight;
+ if (mode == 'horizontal')
+ return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+ element.offsetWidth;
+ },
+
+ page: function(forElement) {
+ var valueT = 0, valueL = 0;
+
+ var element = forElement;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+
+ // Safari fix
+ if (element.offsetParent == document.body)
+ if (Element.getStyle(element,'position')=='absolute') break;
+
+ } while (element = element.offsetParent);
+
+ element = forElement;
+ do {
+ if (!window.opera || element.tagName=='BODY') {
+ valueT -= element.scrollTop || 0;
+ valueL -= element.scrollLeft || 0;
+ }
+ } while (element = element.parentNode);
+
+ return [valueL, valueT];
+ },
+
+ clone: function(source, target) {
+ var options = Object.extend({
+ setLeft: true,
+ setTop: true,
+ setWidth: true,
+ setHeight: true,
+ offsetTop: 0,
+ offsetLeft: 0
+ }, arguments[2] || {})
+
+ // find page position of source
+ source = $(source);
+ var p = Position.page(source);
+
+ // find coordinate system to use
+ target = $(target);
+ var delta = [0, 0];
+ var parent = null;
+ // delta [0,0] will do fine with position: fixed elements,
+ // position:absolute needs offsetParent deltas
+ if (Element.getStyle(target,'position') == 'absolute') {
+ parent = Position.offsetParent(target);
+ delta = Position.page(parent);
+ }
+
+ // correct by body offsets (fixes Safari)
+ if (parent == document.body) {
+ delta[0] -= document.body.offsetLeft;
+ delta[1] -= document.body.offsetTop;
+ }
+
+ // set position
+ if(options.setLeft) target.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px';
+ if(options.setTop) target.style.top = (p[1] - delta[1] + options.offsetTop) + 'px';
+ if(options.setWidth) target.style.width = source.offsetWidth + 'px';
+ if(options.setHeight) target.style.height = source.offsetHeight + 'px';
+ },
+
+ absolutize: function(element) {
+ element = $(element);
+ if (element.style.position == 'absolute') return;
+ Position.prepare();
+
+ var offsets = Position.positionedOffset(element);
+ var top = offsets[1];
+ var left = offsets[0];
+ var width = element.clientWidth;
+ var height = element.clientHeight;
+
+ element._originalLeft = left - parseFloat(element.style.left || 0);
+ element._originalTop = top - parseFloat(element.style.top || 0);
+ element._originalWidth = element.style.width;
+ element._originalHeight = element.style.height;
+
+ element.style.position = 'absolute';
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.width = width + 'px';
+ element.style.height = height + 'px';
+ },
+
+ relativize: function(element) {
+ element = $(element);
+ if (element.style.position == 'relative') return;
+ Position.prepare();
+
+ element.style.position = 'relative';
+ var top = parseFloat(element.style.top || 0) - (element._originalTop || 0);
+ var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
+
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.height = element._originalHeight;
+ element.style.width = element._originalWidth;
+ }
+}
+
+// Safari returns margins on body which is incorrect if the child is absolutely
+// positioned. For performance reasons, redefine Position.cumulativeOffset for
+// KHTML/WebKit only.
+if (Prototype.Browser.WebKit) {
+ Position.cumulativeOffset = function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ if (element.offsetParent == document.body)
+ if (Element.getStyle(element, 'position') == 'absolute') break;
+
+ element = element.offsetParent;
+ } while (element);
+
+ return [valueL, valueT];
+ }
+}
+
+Element.addMethods();
\ No newline at end of file
diff --git "a/site-antigo/extra/PublicacaoAcademica/ArtigosAcad\352micod.png"
"b/site-antigo/extra/PublicacaoAcademica/ArtigosAcad\352micod.png"
new file mode 100644
index 0000000..b4c8710
Binary files /dev/null and "b/site-antigo/extra/PublicacaoAcademica/ArtigosAcad\352micod.png" differ
diff --git a/site-antigo/extra/SuporteComunitario/gnome-help-community.png
b/site-antigo/extra/SuporteComunitario/gnome-help-community.png
new file mode 100644
index 0000000..2e8defe
Binary files /dev/null and b/site-antigo/extra/SuporteComunitario/gnome-help-community.png differ
diff --git a/site-antigo/extra/TraducaoPrevia/gnome-br-2008-04-23-20h23.log.gz
b/site-antigo/extra/TraducaoPrevia/gnome-br-2008-04-23-20h23.log.gz
new file mode 100644
index 0000000..1d08dbc
Binary files /dev/null and b/site-antigo/extra/TraducaoPrevia/gnome-br-2008-04-23-20h23.log.gz differ
diff --git a/site-antigo/extra/Tutoriais/Manual_Usuario_Gnome.pdf
b/site-antigo/extra/Tutoriais/Manual_Usuario_Gnome.pdf
new file mode 100644
index 0000000..a596c11
Binary files /dev/null and b/site-antigo/extra/Tutoriais/Manual_Usuario_Gnome.pdf differ
diff --git a/site-antigo/extra/Tutoriais/gnome-tutorial-text.png
b/site-antigo/extra/Tutoriais/gnome-tutorial-text.png
new file mode 100644
index 0000000..417a559
Binary files /dev/null and b/site-antigo/extra/Tutoriais/gnome-tutorial-text.png differ
diff --git a/site-antigo/extra/VForum/bannerVForumMed.png b/site-antigo/extra/VForum/bannerVForumMed.png
new file mode 100644
index 0000000..d030198
Binary files /dev/null and b/site-antigo/extra/VForum/bannerVForumMed.png differ
diff --git a/site-antigo/extra/Videos/gnome-tutorial-video.png
b/site-antigo/extra/Videos/gnome-tutorial-video.png
new file mode 100644
index 0000000..277b291
Binary files /dev/null and b/site-antigo/extra/Videos/gnome-tutorial-video.png differ
diff --git a/site-antigo/extra/WebCSS/bg-content-right-bottom.png
b/site-antigo/extra/WebCSS/bg-content-right-bottom.png
new file mode 100644
index 0000000..5aa635f
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-content-right-bottom.png differ
diff --git a/site-antigo/extra/WebCSS/bg-content-right.png b/site-antigo/extra/WebCSS/bg-content-right.png
new file mode 100644
index 0000000..2c40e8a
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-content-right.png differ
diff --git a/site-antigo/extra/WebCSS/bg-content.png b/site-antigo/extra/WebCSS/bg-content.png
new file mode 100644
index 0000000..5894c18
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-content.png differ
diff --git a/site-antigo/extra/WebCSS/bg-header-div.gif b/site-antigo/extra/WebCSS/bg-header-div.gif
new file mode 100644
index 0000000..64d2eb8
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-header-div.gif differ
diff --git a/site-antigo/extra/WebCSS/bg-header.png b/site-antigo/extra/WebCSS/bg-header.png
new file mode 100644
index 0000000..a18a065
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-header.png differ
diff --git a/site-antigo/extra/WebCSS/bg-menu.png b/site-antigo/extra/WebCSS/bg-menu.png
new file mode 100644
index 0000000..70e2097
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-menu.png differ
diff --git a/site-antigo/extra/WebCSS/bg-top.png b/site-antigo/extra/WebCSS/bg-top.png
new file mode 100644
index 0000000..d86b251
Binary files /dev/null and b/site-antigo/extra/WebCSS/bg-top.png differ
diff --git a/site-antigo/extra/WebCSS/line.png b/site-antigo/extra/WebCSS/line.png
new file mode 100644
index 0000000..536e502
Binary files /dev/null and b/site-antigo/extra/WebCSS/line.png differ
diff --git a/site-antigo/extra/WebHome/3.0-release3.jpg b/site-antigo/extra/WebHome/3.0-release3.jpg
new file mode 100644
index 0000000..cc76573
Binary files /dev/null and b/site-antigo/extra/WebHome/3.0-release3.jpg differ
diff --git a/site-antigo/extra/WebHome/fisl11_display.png b/site-antigo/extra/WebHome/fisl11_display.png
new file mode 100644
index 0000000..5fd503a
Binary files /dev/null and b/site-antigo/extra/WebHome/fisl11_display.png differ
diff --git a/site-antigo/extra/WebHome/window-selection-3.20-420x236.png
b/site-antigo/extra/WebHome/window-selection-3.20-420x236.png
new file mode 100644
index 0000000..94effa6
Binary files /dev/null and b/site-antigo/extra/WebHome/window-selection-3.20-420x236.png differ
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]